我尝试使用以下代码:
DECLARE @rec_count int
Set @rec_count= select 1
但显示错误
“选择”附近的语法不正确。
答案 0 :(得分:3)
或者:
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
但是,如果您只想为变量赋值,则不需要任何select语句:
set @rec_count = 1
或
declare @rec_count int = 1
答案 1 :(得分:0)
要将select
语句的结果存储到变量中,请参阅下面的
DECLARE @rec_count INT
SELECT @rec_count = 1
我们可以从select语句中获取多个值,如下所示
DECLARE @rec_count INT
DECLARE @date DATETIME
SELECT @rec_count = 1, @date = GETDATE()
答案 2 :(得分:0)
如果您正在尝试获取记录计数,这看起来就像您尝试做的那样,您可以这样做:
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
答案 3 :(得分:-2)
DECLARE @rec_count int;
Set @rec_count = 1;