关于sp_executesql的有关问题
关于sp_executesql的问题
大家帮忙看下这句为什么不能执行?
------解决方案--------------------
@count 动态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 from testtable'
exec sp_executesql @sql,N'@count varchar(10)',@count='10'
大家帮忙看下这句为什么不能执行?
------解决方案--------------------
@count 动态SQL变量前后加+
------解决方案--------------------
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'