0

自分で問題を見つけようとした後、デバッグを行います

@cols および @cols2 変数が結果をもたらさないことがわかりました。PRINT があります。

PRINT('INSERT INTO [' + @Destination_Database_Name + '].[dbo].[' + @tablename + '] (' + @cols2 + ']' + ') SELECT [' + @cols2 + ']' + ' FROM [' + @Source_Database_Name + '].[dbo].[' + @tablename + ']');

そして、ステートメントは私が得るすべての出力を表示しません

(1 行が影響を受けます)

(1 行が影響を受けました) 私はここにいます2

c365online_script1 私はここにいます3 tCompany

これは私が問題だと思うコードのセクションです

   Print 'I am here2'
                        SET IDENTITY_INSERT c365online_script1.dbo.tCompany ON
                        declare @cols2 varchar(max)
                        PRINT @cols2
                        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)
                        PRINT('INSERT INTO [' + @Destination_Database_Name + '].[dbo].[' + @tablename + '] (' + @cols2 + ']' + ') SELECT [' + @cols2 + ']' + ' FROM [' + @Source_Database_Name + '].[dbo].[' + @tablename + ']');
                        PRINT @Destination_Database_Name
                         Print 'I am here3'
                         Print @tablename
                    END   

リクエストに応じて完全なコードを投稿できます

4

2 に答える 2

0

試す

SET @cols2 = (Select....)

それ以外の

SELECT @cols2 = (Select....)
于 2013-11-01T16:55:17.090 に答える