']'附近的语法不正确.?

use*_*671 1 sql t-sql sql-server ssms syntax-error

我已经对我的sql做了一些调试,我无法弄清楚我得到的令人抓狂的错误我已经把它缩小到几行,我不知道问题是什么,请有人给我一些帮助.

我收到这个错误

我在这里2 Msg 102,Level 15,State 1,Line 1'''附近的语法不正确.我在这里3

 Print 'I am here2'
                        SET IDENTITY_INSERT c365online_script1.dbo.tCompany ON
                        declare @cols2 varchar(max)
                        select @cols2 = (Select Stuff((Select '],[' + C.COLUMN_NAME From INFORMATION_SCHEMA.COLUMNS As C Where C.TABLE_SCHEMA = T.TABLE_SCHEMA And C.TABLE_NAME = T.TABLE_NAME Order By C.ORDINAL_POSITION For Xml Path('')), 1, 2, '') As Columns From INFORMATION_SCHEMA.TABLES As T WHERE T.TABLE_NAME = @tablename)
                        EXEC('INSERT INTO [' + @Destination_Database_Name + '].[dbo].[' + @tablename + '] (' + @cols2 + ']' + ') SELECT ' + @cols2 + ']' + ' FROM [' + @Source_Database_Name + '].[dbo].[' + @tablename + ']');
                         Print 'I am here3'
Run Code Online (Sandbox Code Playgroud)

gve*_*vee 7

你在这里错过了一个方括号:

... ') SELECT ' + @cols2 + ']' + ' FROM ...
Run Code Online (Sandbox Code Playgroud)

此外,我建议您切换到使用QuoteName()功能:

... ') SELECT ' + QuoteName(@cols2) + ' FROM...
Run Code Online (Sandbox Code Playgroud)