実行する 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
変数にあると予想していましたが、次のエラーが表示されました。
「OUPUT」付近の構文が正しくありません。
スカラー変数「@existingRecordCount」を宣言する必要があります。
私は何を間違っていますか?
前もって感謝します。SQL Server 2008 を使用しています