日期:2014-05-17 浏览次数:20424 次
declare @sql Nvarchar(100)
set @sql='select top @count from testtable'
exec sp_executesql @sql,N'@count varchar(10)',@count='10'
DECLARE @count INT
SET @count = 10
SELECT TOP @count FROM testable
-- 以上语句能执行吗? 不能, 因为 SELECT 里面的字段名不能用变量代替. 你犯的是同一错误.
-- 可以改成这样
DECLARE @count INT , @SQL varchar(max)
SET @count = 10
SET @SQL = 'SELECT TOP ' + @count + ' FROM testtable'
EXEC(@SQL)
declare @sql Nvarchar(100)
set @sql='select top (@count) ID from testtable'
exec sp_executesql @sql,N'@count int',@count='10'