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'
declare @sql Nvarchar(100) set @sql='select top (@count) ID from testtable' exec sp_executesql @sql,N'@count int',@count='10'
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)
set @sql='select top (@count) ID from testtable'
exec sp_executesql @sql,N'@count int',@count='10'
set @sql='select top (@count) ID from testtable'
exec sp_executesql @sql,N'@count int',@count='10'