我正在尝试构建一个 SQL 字符串来执行,sp_executesql
但我似乎无法为传入的 sql 字符串中的声明变量赋值。
所以下面是我的程序的一个例子
ALTER PROCEDURE [dbo].[selectRecords]
@psID INT --parameter passed in
AS
DECLARE @existingRecordCount INT=0
DECLARE @sql NVARCHAR(1000)
DECLARE @paramDefinitions NVARCHAR(1000)
SET @paramDefinitions=
'@psID INT,
@existingRecordCount INT OUTPUT'
SET @sql='
SELECT
@existingRecordCount=COUNT(Name)
FROM dbo.Asset_Log
WHERE ID=@psID
GROUP BY Name'
EXECUTE sp_executesql @sql, @paramDefinitions, @psID, @existingRecordCount
所以,我希望我的记录计数在@existingRecordCount
变量中,但我收到以下错误:
“输出”附近的语法不正确。
必须声明标量变量“@existingRecordCount”。
我究竟做错了什么?
提前致谢。我正在使用 SQL Server 2008