我试图使用动态查询获取表的总行数,但最终我没有这样做。这是我的疑问:
declare @sql NVARCHAR(MAX);
declare @result VARCHar(20);
declare @s varchar(10);
set @s='country';
SET @sql = 'SELECT '+@result +'=COUNT(*) FROM '+@s
EXEC (@sql);
select @result;
我在@result中获得NULL值。
答案 0 :(得分:0)
你需要做这样的事情......
DECLARE @sql NVARCHAR(MAX);
DECLARE @COUNT INT;
DECLARE @TableName NVARCHAR(128);
SET @TableName = 'TableName';
SET @sql = N'SELECT @COUNT = COUNT(*) FROM '+ QUOTENAME(@TableName)
EXECUTE sp_executesql @sql
, N'@COUNT INT OUTPUT'
, @COUNT OUTPUT
SELECT @COUNT
答案 1 :(得分:0)
declare @sql NVARCHAR(MAX)
declare @result VARCHAR(20)
declare @s varchar(10)
set @s='country'
SET @sql = 'SELECT @result = COUNT(*) FROM '+ QUOTENAME(@s)
EXEC sp_executesql @sql,N'@result varchar(20) OUTPUT',@result output
SELECT @result