加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

结构相同的数据库之间复制数据

发布时间:2021-01-11 21:27:46 所属栏目:编程 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 use oldgoDECLARE NoCheckConstraintAll CURSOR READ_ONLY FOR SELECT sst.name,Schema_name(sst.schema_id) FROM sys.tables sst WHERE sst.TYPE = '

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

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 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 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

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读