-1

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

像 :

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

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

4

2 回答 2

2

不,没有。

如果您需要记住是否尝试将数据插入@table,请使用单独的bit变量作为标志。

如果您需要知道您的 @table 是否包含任何行,请使用

if exists (select * from @table1)
begin
    ...
end;
于 2012-05-25T18:47:22.910 回答
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
于 2012-05-25T19:01:14.367 回答