sql - SQL Server:必须声明标量变量
问题描述
我需要将全局变量声明为计数器
DECLARE @counter int
SET @counter = 0;
然后使用存储过程,但它总是告诉我@counter
必须声明为标量变量
CREATE OR ALTER PROCEDURE proc_counter_type
@type NVARCHAR(15),
@dateFirst DATE,
@dateSecond DATE
AS
SELECT @counter = COUNT(title_id)
FROM books
WHERE type = @type AND (datum BETWEEN @dateFirst AND @dateSecond)
解决方案
您需要添加@Counter
为OUTPUT
参数:
CREATE OR ALTER PROCEDURE proc_counter_type @type nvarchar(15), @dateFirst date, @dateSecond date, @Counter int OUTPUT
AS
BEGIN
SELECT @counter = COUNT(title_id)
FROM books
WHERE type = @type
AND (datum BETWEEN @dateFirst AND @dateSecond);
END;
然后你执行 SP 为:
DECLARE @counter int;
--Other Params
EXEC proc_counter_type, @Type, @dateFirst, @dateSecond, @Counter OUTPUT;
PRINT @Counter;
推荐阅读
- azure - 如何让你的IP地址稳定?
- c++ - C ++ QT QAudioInput记录文件不同长度
- c++ - 设置类似命名变量的值 C++
- r - 使用“\\;+;” 作为正则表达式不起作用
- django - django arrayfield 保存包含逗号的数组项
- javascript - 递归没有正确运行?
- r - 将几何数据存储在 r 包中
- c++ - 了解在返回值之前和之后使用 EAX 的函数调用
- sql - How to do a SQL query with SRFs and display only distinct values?
- python - 如何解决n数上的阶乘偶数,然后将它们相乘