【问题标题】:Automate Generate scripts for database objects为数据库对象自动生成脚本
【发布时间】:2020-10-29 05:13:14
【问题描述】:

如何使用存储过程自动为数据库对象生成脚本

【问题讨论】:

    标签: sql tsql stored-procedures


    【解决方案1】:

    如果您想将对象定义和数据迁移到另一个数据库,您可以使用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]
    

    【讨论】:

    • 谢谢。但我想创建 SP 来生成一次脚本
    • @Shimma 脚本有什么用?如果是一次,请使用 SSMS 工作室。
    猜你喜欢
    • 2013-10-23
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    相关资源
    最近更新 更多