Установка переменных в хранимой процедуре с помощью EXECUTE sp _executesql

Я пытаюсь создать строку 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

0
задан Sun 16 July 2012 в 15:31
поделиться