Tsql无法使用count语句更新列

时间:2010-04-29 16:54:57

标签: sql sql-server sql-server-2005 tsql sql-server-2008

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

4 个答案:

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