大佬教程收集整理的这篇文章主要介绍了T-SQL脚本复制所有表约束,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
现在我正在调整数据库并在我的本地数据库表上创建了许多约束,例如PK,FK,默认值,索引等.
现在我想只将这些约束复制到生产数据库.有办法吗?
请注意,我的生产数据库表已经填充了一些数据.所以我不能放弃并重新创建它们.
例如,在例如默认约束,此查询显示数据库中所有默认约束的列表:
SELECT dc.name 'Constraint name',object_name(parent_object_id) 'Table Name',c.name 'column Name',deFinition FROM sys.default_consTraints dc INNER JOIN sys.columns c ON dc.parent_object_id = @R_569_2627@ AND dc.parent_COLUMN_ID = c.COLUMN_ID ORDER BY object_name(parent_object_id),c.name
基于此,您当然可以创建一个查询,该查询将发出T-sql语句以在目标服务器上重新创建这些默认约束:
SELECT 'alter table ' + OBjeCT_Schema_name(dc.parent_object_id) + '.' + object_name(dc.parent_object_id) + ' ADD CONSTraiNT ' + dc.name + ' DEFAULT(' + deFinition + ') FOR ' + c.name FROM sys.default_consTraints dc INNER JOIN sys.columns c ON dc.parent_object_id = @R_569_2627@ AND dc.parent_COLUMN_ID = c.COLUMN_ID
你会得到这样的东西(对于AdventureWorks示例数据库):
alter table dbo.Store ADD CONSTraiNT DF_Store_rowguid DEFAULT((newid())) FOR rowguid alter table dbo.Store ADD CONSTraiNT DF_Store_ModifiedDate DEFAULT((getdate())) FOR ModifiedDate alter table dbo.ProductPhoto ADD CONSTraiNT DF_ProductPhoto_ModifiedDate DEFAULT((getdate())) FOR ModifiedDate alter table dbo.ProductProductPhoto ADD CONSTraiNT DF_ProductProductPhoto_PriMary DEFAULT(((0))) FOR PriMary alter table dbo.ProductProductPhoto ADD CONSTraiNT DF_ProductProductPhoto_ModifiedDate DEFAULT((getdate())) FOR ModifiedDate alter table dbo.StoreContact ADD CONSTraiNT DF_StoreContact_rowguid DEFAULT((newid())) FOR rowguid alter table dbo.StoreContact ADD CONSTraiNT DF_StoreContact_ModifiedDate DEFAULT((getdate())) FOR ModifiedDate alter table dbo.Address ADD CONSTraiNT DF_Address_rowguid DEFAULT((newid())) FOR rowguid
当然,您可以根据自己的喜好调整生成的T-sql输出 – 但基本上,将查询中的结果复制并粘贴到新数据库中,然后就可以了.
当然,外键关系(sys.foreign_keys),检查约束(sys.check_consTraints),索引(sys.indexes和sys.index_columns)等等有类似的系统目录视图.
这有点工作 – 但它可以在你自己的时间完成,你将在这个过程中学到很多关于sql Server的知识.
所以这是一个传统的“制造或购买”决定:-)
渣
以上是大佬教程为你收集整理的T-SQL脚本复制所有表约束全部内容,希望文章能够帮你解决T-SQL脚本复制所有表约束所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。