2010-04-29 47 views
1
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) 

--------->的出來把它給了我只是0TSQL無法更新計數語句中的列

回答

0

這是因爲你正在創建你的表,並更新它,但它是空的。

變化

update @t2 set dogs = (Select COUNT(*) from @t1) 

對於

declare @c int 

select @c = COUNT(*) from @t1 

insert into @t2 (dogs) values (@c) 
+0

感謝弗朗西斯科。你的解決方案可以幫助我一點。 最好的問候 – desi 2010-04-29 17:25:24

1

嘗試使用INSERT語句而不是更新的(」更新」是修改一個已經存在的記錄;‘插入’是進入一個新的) - 從這個代碼在所有

INSERT INTO @t2 SELECT COUNT(*) FROM @t1 

爲什麼應該有任何輸出?我沒有看到任何選擇或打印語句。

(究竟是什麼,你要完成?)

1

這是因爲你不插入@ T2,所以您的更新沒有任何記錄更新。

+0

其實我已經在臨時表中@ T2各種其他列。我想更新第一張表中@ t1的所有列,這些列也有各種其他列。 這只是我總結到小,所以我可以解決,如果我得到一些解決方案。 我認爲Francisco解決方案可能會對我有所幫助。 謝謝 – desi 2010-04-29 17:24:05

3

首先你不能更新@ t2中的任何記錄,因爲你沒有任何記錄要更新。你需要做另一個插入。假設你有記錄,你需要一種方法將子查詢與你需要更新的記錄聯繫起來。