3

これが私がこれまでに持っているものです。クエリ結果をint変数に格納したいのですが、これまでのところnullになっています。実行後、@queryと@countrowは両方ともnullになります。どんな提案も素晴らしいでしょう。

    SET @query = N'select @countrow=count(*) from ' + @tablename 
EXECUTE sp_executesql @query
4

2 に答える 2

3
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フィドルを見てください

于 2012-10-10T14:16:51.583 に答える
2

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
于 2012-10-10T14:16:27.270 に答える