首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

MSSQL 存储过程中EXEC附近有语句异常

2013-04-21 
MSSQL 存储过程中EXEC附近有语句错误SET @Str1,2,3,4DECLARE Cur CURSOR FOR EXEC(SELECT [Id] FROM [

MSSQL 存储过程中EXEC附近有语句错误
SET @Str='1,2,3,4'

DECLARE Cur CURSOR FOR 
EXEC('SELECT [Id] FROM [List] WHERE [Id] NOT IN('+@Str+') ORDER BY [Id] DESC')

--出错原因:EXEC附近有语句错误,在游标中不能用EXEC吗?

OPEN SntCur
FETCH NEXT FROM Cur INTO @Id
WHILE @@FETCH_STATUS=0
BEGIN
--此处省略...
FETCH NEXT FROM Cur INTO @Id
END
CLOSE Cur
DEALLOCATE Cur
[解决办法]

如果是学方法,可以这样:
DECLARE @SqlT VARCHAR(200),@Str VARCHAR(20),@Id INT

SET @Str='1,2,3,4'
SET @SqlT='DECLARE SntCur CURSOR FOR 
SELECT [Id] FROM [List] WHERE [Id] NOT IN('+@Str+') ORDER BY [Id] DESC)'

EXEC(@SqlT)
--出错原因:EXEC附近有语句错误,在游标中不能用EXEC吗?

OPEN SntCur
FETCH NEXT FROM Cur INTO @Id
WHILE @@FETCH_STATUS=0
BEGIN
--此处省略...
FETCH NEXT FROM Cur INTO @Id
END
CLOSE SntCur
DEALLOCATE SntCur

热点排行
Bad Request.