我想知道是否可以将声明变量(如表)设置为null。
喜欢:
DECLARE @TABLE1 AS TABLE (COL1 INT)
SET @TABLE1 = NULL
我搜索一种方法来了解我是否已经尝试将数据插入到我的变量
中答案 0 :(得分:2)
不,没有。
如果您需要记住是否已尝试将数据插入@table,请使用单独的bit
变量作为标记。
如果您需要知道@table是否包含任何行,请使用
if exists (select * from @table1)
begin
...
end;
答案 1 :(得分:0)
要完成关于是否添加了行的问题,您可以执行以下操作:
insert into @TABLE1 (COL1) VALUES ([someYourData])
if @@ROWCOUNT > 0
-- row addeded
ELSE
-- nothing added
或者您可以检查@@ROWCOUNT
的值以了解添加了多少行:
insert into @TABLE1 (COL1) VALUES ([someYourData])
print @@ROWCOUNT
我所知道的@TABLE1
有local scope
所以当存储过程结束时,此变量将被删除
并且正如GSerg所说,你有很多想要检查它:
if exists (select * from @TABLE1)
BEGIN
-- do something
END
或
if (select count(@@rowcount) from @TABLE1) > 0
BEGIN
-- do something
END
或
if (select count(*) from @TABLE1) > 0
BEGIN
-- do something
END