结构相同的数据库之间复制数据
发布时间:2021-01-11 22:30:33 所属栏目:MySql教程 来源:网络整理
导读:今天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】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |