【发布时间】:2020-10-29 05:13:14
【问题描述】:
如何使用存储过程自动为数据库对象生成脚本
【问题讨论】:
标签: sql tsql stored-procedures
如何使用存储过程自动为数据库对象生成脚本
【问题讨论】:
标签: sql tsql stored-procedures
如果您想将对象定义和数据迁移到另一个数据库,您可以使用SQL Server Replication - 例如阅读Transactional replication。它会不断同步指定对象的定义和数据。
如果想一次性生成脚本,可以使用 SQL Server Management Studio 生成脚本选项(右键单击数据库 -> 任务 -> 生成脚本:
有很多选择。例如,不仅要获取表定义,还要获取数据:
无论如何,对于较大的表,生成的文件可能太大而无法被 SSMS 再次打开,因此可以使用bcp 传输数据。
如果您想创建自己的程序来为特定对象的定义编写脚本,您将查询 DMV:
sys.objects
sys.tables
sys.columns
sys.indexes
etc
您将在此处找到每个对象的详细信息(列、类型、索引键)。对于例程,您可以使用:
SELECT [ROUTINE_NAME]
,[ROUTINE_DEFINITION]
FROM [INFORMATION_SCHEMA].[ROUTINES]
SELECT OBJECT_NAME([id])
,[text]
FROM [SYSCOMMENTS]
SELECT OBJECT_NAME([object_id])
,[definition]
FROM [sys].[sql_modules]
【讨论】: