これが私がこれまでに持っているものです。クエリ結果をint変数に格納したいのですが、これまでのところnullになっています。実行後、@queryと@countrowは両方ともnullになります。どんな提案も素晴らしいでしょう。
SET @query = N'select @countrow=count(*) from ' + @tablename
EXECUTE sp_executesql @query
これが私がこれまでに持っているものです。クエリ結果をint変数に格納したいのですが、これまでのところnullになっています。実行後、@queryと@countrowは両方ともnullになります。どんな提案も素晴らしいでしょう。
SET @query = N'select @countrow=count(*) from ' + @tablename
EXECUTE sp_executesql @query
DECLARE @i INT, @sql NVARCHAR(512), @tablename varchar(200) = 'tbl'
SET @sql = N'SELECT @i = COUNT(*) FROM ' + @tablename
EXEC sp_executesql
@query = @sql,
@params = N'@i INT OUTPUT',
@i = @i OUTPUT
PRINT @i
SQLフィドルを見てください
OUTPUT
次のようなキーワードを使用する必要があります。
declare @query nvarchar(max)
declare @countrow int
declare @tablename varchar(50)
SET @query = N'select @cnt=count(*) from ' + @tablename
EXECUTE sp_executesql @query, N'@cnt int OUTPUT', @cnt=@countrow OUTPUT
select @countrow as countrow -- to get the result