0

この質問の言い回しはわかりませんが、これを実行しようとしています。

alter table [TEMP]
add SEQID int identity(1,1)

これは機能します。ただし、実際に必要なのは、intではなくfloat列です。

alter table [TEMP]
add SEQID **FLOAT** identity(1,1)

これは違法だと思います。そうでない場合はお知らせください。フロートID列を取得するための回避策はありますか?

編集:ID列をintとして作成し、ID属性を削除してから、列をfloatに変換する方法はありますか?

4

2 に答える 2

3

次のようにやりたいことができます:

create table temp (
    id int identity(1,1),
    fid as cast(id as float)
)

これにより、id が整数として追加されますが、それを float に変換することによって計算される別の列があります。

レガシー システム用に新しい ID を作成するのはなぜですか?

または、計算列を既存のテーブルに追加できます。

alter table temp add fid as cast(id as float)
于 2012-05-31T21:41:57.623 に答える
-1

浮動小数点 ID が必要な理由を理解しているかどうかわかりません。通常、その列は int (bigint、smallint、テーブルによって異なります...) として格納されますが、int はテーブルの各行を一意に識別し、データを汚染することなく各行をクエリできるようにします。テーブルを正しく結合することを確認する必要があります。

float を使用することに本当に自信がある場合は、何か不足していない限り、これで十分だと思います。

alter table [TEMP]
add SEQID float identity(1,1)
于 2012-05-31T21:43:59.717 に答える