我試着用下面的代碼:如何將select語句的結果存儲到變量中?
DECLARE @rec_count int
Set @rec_count= select 1
,但它顯示錯誤
「選擇附近有語法錯誤」。
我試着用下面的代碼:如何將select語句的結果存儲到變量中?
DECLARE @rec_count int
Set @rec_count= select 1
,但它顯示錯誤
「選擇附近有語法錯誤」。
或者:
set @rec_count = (select 1)
或
select @rec_count = 1
一個例子從表中分配計數變量:
set @rec_count = (select COUNT(*) from master..spt_values)
select @rec_count = COUNT(*) from master..spt_values
但是,如果舉ST要分配給一個變量,你不需要任何select語句的值:
set @rec_count = 1
或
declare @rec_count int = 1
要存儲select
語句轉換成一個變量的結果,請參見下面
DECLARE @rec_count INT
SELECT @rec_count = 1
我們可以從select語句中得到多個值如下
DECLARE @rec_count INT
DECLARE @date DATETIME
SELECT @rec_count = 1, @date = GETDATE()
如果你想獲得一個記錄計數,它看起來像你想做什麼,你可以這樣做:
declare @rec_count int
select @rec_count = count(1) from [your_table] -- where some condition is met
注:使用count(1)
,而不是count(*)
,因爲它的速度更快在計數時簡單地選擇一列。
或者,如果這個數是一些插入的結果/更新/選擇/刪除,你可以使用@@ROWCOUNT,其中:
返回受上一語句的行數。
所以,例如,如果你執行的是update
或select
,想知道有多少行受到影響,它會自動通過SQL Server中的@@ROWCOUNT
存儲。
declare @rec_count int
-- some table change
update your_table
set col1 = 1
where col1 = 0
set @rec_count = @@ROWCOUNT
-- select @@ROWCOUNT <-- this would return the number of rows updated
你需要更具體。您是否試圖從單一行(即行數)存儲單個標量值?或者你是否試圖存儲多個列和/或行?每個問題的答案是不同的,到目前爲止,人們只是回答與單個標量值相關的問題。那麼,你想完成什麼? – 2014-10-16 14:32:44