时间:2021-07-01 10:21:17 帮助过:8人阅读
结构相同的数据库之间复制数据 无 use oldgoDECLARE NoCheckConstraintAll CURSOR READ_ONLY FOR SELECT sst.name, Schema_name(sst.schema_id) FROM sys.tables sst WHERE sst.TYPE = 'U' DECLARE @name VARCHAR(80), @schema VARCHAR(40)OPEN NoCheckConstr
结构相同的数据库之间复制数据 <无>use old
go
DECLARE NoCheckConstraintAll CURSOR READ_ONLY FOR
SELECT sst.name,
Schema_name(sst.schema_id)
FROM sys.tables sst
WHERE sst.TYPE = 'U'
DECLARE @name VARCHAR(80),
@schema VARCHAR(40)
OPEN NoCheckConstraintAll
FETCH NEXT FROM NoCheckConstraintAll INTO @name, @schema
WHILE ( @@FETCH_STATUS <> -1 )
BEGIN
IF ( @@FETCH_STATUS <> -2 )
BEGIN
DECLARE @sql NVARCHAR(1024)
SET @sql=' ALTER TABLE ' + Quotename(@schema)
+
'.' + Quotename(@name)+' NOCHECK CONSTRAINT ALL'
EXEC Sp_executesql @sql
END
FETCH NEXT FROM NoCheckConstraintAll INTO @name, @schema
END
CLOSE NoCheckConstraintAll
DEALLOCATE NoCheckConstraintAll
GO
DECLARE CopyTables CURSOR READ_ONLY FOR
SELECT sst.name,
Schema_name(sst.schema_id)
FROM sys.tables sst
WHERE sst.TYPE = 'U'
DECLARE @name VARCHAR(80),
@schema VARCHAR(40)
OPEN CopyTables
FETCH NEXT FROM CopyTables INTO @name, @schema
WHILE ( @@FETCH_STATUS <> -1 )
BEGIN
IF ( @@FETCH_STATUS <> -2 )
BEGIN
DECLARE @sql NVARCHAR(1024)
SET @sql='INSERT INTO [new].' + Quotename(@schema)
+
'.' + Quotename(@name)+' SELECT * FROM '+ Quotename(@schema)
+
'.' + Quotename(@name)
EXEC Sp_executesql @sql
END
FETCH NEXT FROM CopyTables INTO @name, @schema
END
CLOSE CopyTables
DEALLOCATE CopyTables
GO
DECLARE CheckConstraintAll CURSOR READ_ONLY FOR
SELECT sst.name,
Schema_name(sst.schema_id)
FROM sys.tables sst
WHERE sst.TYPE = 'U'
DECLARE @name VARCHAR(80),
@schema VARCHAR(40)
OPEN CheckConstraintAll
FETCH NEXT FROM CheckConstraintAll INTO @name, @schema
WHILE ( @@FETCH_STATUS <> -1 )
BEGIN
IF ( @@FETCH_STATUS <> -2 )
BEGIN
DECLARE @sql NVARCHAR(1024)
SET @sql=' ALTER TABLE ' + Quotename(@schema)
+
'.' + Quotename(@name)+' CHECK CONSTRAINT ALL'
EXEC Sp_executesql @sql
END
FETCH NEXT FROM CheckConstraintAll INTO @name, @schema
END
CLOSE CheckConstraintAll
DEALLOCATE CheckConstraintAll
GO