トリガーでSQLServerGUIDを使用していくつかの計算を行う必要があり、をに変換する方法を理解するのに苦労しuniqueidentifier
ていnumeric(38,0)
ます。
潜在的な問題の1つ:私の理解では、これらのデータ型は両方とも16バイトの「整数」です。ここが間違っている場合は、訂正してください。
それ以外の場合、この変換についてはどうすればよいですか?CASTとCONVERTを試しましたが、データ型のuniqueidentifierから数値への明示的な変換は許可されていません。試行するたびにエラーメッセージとして表示されます。これを行うために、各文字を解析してUDFで16進演算を行う必要がないようにしたいと思います。
これは可能ですか?
これが、この本当の速さを再現するための私のスクリプトです。
DECLARE @guid uniqueidentifier
SET @guid = NEWID()
DECLARE @a numeric(38,0)
SET @a = 2
PRINT CAST(@guid AS numeric(38,0)) -- fails
PRINT @guid / @a -- also fails