declare @t1 Table
(
a1 int
)
insert into @t1
select top 10 AnimalID from Animal
--select * from @t1
declare @t2 table
(
dogs int null
)
update @t2
set dogs = (Select COUNT(*) from @t1)
--------->输出它给我的只是0
答案 0 :(得分:3)
首先,您无法更新@ t2中的任何记录,因为您没有任何记录需要更新。你需要做另一个插入。假设您有记录,则需要一种方法将子查询与您需要更新的记录相关联。
答案 1 :(得分:1)
尝试使用insert语句而不是更新(“update”用于修改已存在的记录;“insert”用于输入新记录) -
INSERT INTO @t2 SELECT COUNT(*) FROM @t1
为什么这段代码会有任何输出?我没有看到任何选择或打印声明。
(你到底想要完成什么?)
答案 2 :(得分:1)
这是因为您从未插入@ t2,因此您的更新没有任何要更新的记录。
答案 3 :(得分:0)
这是因为你正在创建你的表并更新它,但它是空的。
更改
update @t2 set dogs = (Select COUNT(*) from @t1)
对于
declare @c int
select @c = COUNT(*) from @t1
insert into @t2 (dogs) values (@c)