sql server,局部变量,声明表,设置为null

时间:2012-05-25 18:43:13

标签: sql-server variables null

我想知道是否可以将声明变量(如表)设置为null。

喜欢:

DECLARE @TABLE1 AS TABLE (COL1 INT)
SET @TABLE1 = NULL

我搜索一种方法来了解我是否已经尝试将数据插入到我的变量

2 个答案:

答案 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

我所知道的@TABLE1local 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