我有我有两个相同结构的数据库的情况。第一个数据表中有一些数据。我需要创建一个将数据从第一个数据库传输到第二个数据库的脚本。我已经创建了这个脚本。在SQL Server 2005执行问题
DECLARE @table_name nvarchar(MAX),
@query nvarchar(MAX)
DECLARE @table_cursor CURSOR
SET @table_cursor = CURSOR FAST_FORWARD
FOR
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
OPEN @table_cursor
FETCH NEXT FROM @table_cursor
INTO @table_name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @query = 'INSERT INTO ' + @table_name + ' SELECT * FROM MyDataBase.dbo.' + @table_name
print @query
exec @query
FETCH NEXT FROM @table_cursor
INTO @table_name
END
CLOSE @table_cursor
DEALLOCATE @table_cursor
的问题是,当我运行该脚本“打印@query”语句打印语句这样
INSERT INTO table SELECT * FROM MyDataBase.dbo.table
当我复制本,并从管理Studio中运行它,它工作正常。但是当脚本尝试运行它与执行我得到这个错误
Msg 911, Level 16, State 1, Line 21
Could not locate entry in sysdatabases for database 'INSERT INTO table SELECT * FROM MyDataBase'. No entry found with that name. Make sure that the name is entered correctly.
希望有人可以告诉我whot是与这个战斗。
最好的问候,
约尔丹TANEV
其一,错误信息的东西只显示数据库部分或表名(我不知道MPDEV090314应该是什么)。也许这会更好,如果你发布实际的打印@Query语句而不是*这样的东西* – 2010-04-02 07:41:12