假设这个脚本:
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;
什么时候[Id]
null返回null(什么都没有),但是这个返回-1:
2
DECLARE @mi BIGINT;
SET @mi = (SELECT [Id] FROM @result)
SELECT CAST(ISNULL(@mi, -1) AS BIGINT) AS N'RetValId'
为什么?第一个脚本的问题在哪里?
更新
那么有没有办法检查 Deleted Id 是否为 null 返回 -1 如果没有返回 Id 而没有声明另一个变量?最简单的方法是什么?