Я пытаюсь создать строку 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
, но я получаю следующую ошибку:
Incorrect syntax near 'OUPUT'.
Must declare the scalar variable "@existingRecordCount".
Что я делаю не так?
Заранее спасибо. Я использую SQL Server 2008