0

外部で使用するための代替 ID である一意の顧客 ID を作成中です。

一意の ID 用に INT データ型の新しい列「cust_uid」を追加する過程で、

この新しい列に INSERT を実行すると、次のようになります。

Insert Into Customers(cust_uid)
Select ABS(CHECKSUM(NEWID()))

エラーが発生します:

受け入れ可能なカーソルを作成できませんでした。リンク サーバー "SHQ2IIS1" の OLE DB プロバイダー "SQLNCLI" から、"複数ステップの OLE DB 操作でエラーが発生しました。利用可能な場合は、各 OLE DB ステータス値を確認してください。作業は行われませんでした。

両方のテーブルですべてのデータ型を確認しましたが、変更されたのは両方のテーブルの新しい列だけです。

更新は 1 つの大きな @$$ テーブルで行われています...そして私の給与等級を上回る理由により、現在持っているものとは異なる新しい uid を持ちたいと考えています。私たちは実際に持っています。」

  • の正しいデータ型は INTABS(CHECKSUM(NEWID()))ですか?
4

3 に答える 3

1

一意の ID を生成するための不適切な選択

しかし、そうは言っても、これはエラーをスローしないので、何か他のことが起こっていると思います

declare @id int 
set @id = ABS(CHECKSUM(NEWID())) 
print @id 

アカウント数と custID が ID であることをユーザーに知られたくないという更新は、元の問題ステートメントに記載されているはずです。

于 2013-11-06T20:50:23.307 に答える