TSQL语法错误

时间:2012-09-10 12:26:09

标签: tsql

我正在创建一个tsql过程,将一个数据库中的所有视图重新创建到不同的dtabase上。我收到错误“+附近的语法不正确”当我查看代码虽然语法对我来说是正确的。谁能告诉我这个查询有什么问题?

USE [SOURCEDB]   
BEGIN  
DECLARE @SQL NVARCHAR(MAX)  
DECLARE CUR_V CURSOR FOR  
SELECT sc.text     
FROM sys.views av          
JOIN sys.syscomments sc ON sc.id = av.object_id  
OPEN CUR_V  
FETCH NEXT FROM CUR_V INTO @SQL  
WHILE @@FETCH_STATUS = 0  
BEGIN    
EXEC sp_executesql N'USE [DESTINATIONDB] EXEC sp_executesql ' + @SQL + ''       
FETCH NEXT FROM CUR_V INTO @SQL  END  CLOSE CUR_V  DEALLOCATE CUR_V  END

提前致谢

1 个答案:

答案 0 :(得分:1)

您不能在与sp_executesql

相同的行中执行+
declare @sql nvarchar(1000)
select @sql = N'USE [DESTINATIONDB] EXEC sp_executesql ' + @SQL + '' 
exec sp_executesql @sql

或者你的意思是

select @sql = N'USE [DESTINATIONDB] EXEC sp_executesql N''' + @SQL + ''''