次のスクリプトを想定します。
DECLARE @result TABLE(Id BIGINT);
DELETE FROM [Products].[Product]
OUTPUT DELETED.[Id] INTO @result
WHERE [Products].[Product].[Id] = 1589;
だから続けて私は試します:
1
SELECT CAST(ISNULL([Id], -1) AS BIGINT) AS N'RetValId' FROM @result;
null の場合[Id]
は null (何もない) が返されましたが、これは -1 を返しました:
2
DECLARE @mi BIGINT;
SET @mi = (SELECT [Id] FROM @result)
SELECT CAST(ISNULL(@mi, -1) AS BIGINT) AS N'RetValId'
なんで?最初のスクリプトのどこに問題がありますか?
アップデート
削除されたIDがnullであるかどうかを確認する方法はありますか-1が返され、別の変数を宣言せずに返されたIDでない場合は?最も簡単な方法は何ですか?