浅谈如何在SQL Server中生成脚本


  本文标签:SQL Server 脚本 数据库管理

  在生成脚本过程中,有很多参数可以选择,合理的配置这些参数,可以让我们很方便的按照我们的期望生成脚本  。

  SQL Server

  生成脚本的一些选项,如下图:

  我这里是SQL 2005 的选项, SQL 2008 的选项跟这个稍有差异  。

  这个差异可以参看下面两篇文章

  SQL Server 2005 的生成 SQL Server 脚本向导(“选择脚本选项”页)
http://technet.microsoft.com/zh-cn/library/ms186472(SQL.90).aspx

  SQL Server 2008 的生成 SQL Server 脚本向导(“选择脚本选项”页)
http://technet.microsoft.com/zh-cn/library/ms186472.aspx

  SQL Server

  参数说明,其中红色部分是我比较常用的  。

  常规选项部分:

  Ansi Padding

  在每个 CREATE TABLE 语句前后添加 SET ANSI_PADDING ON 语句  。默认值为 True  。

  Append to File

  将此脚本添加到现有脚本的底部,在“输出选项”页中指定  。默认值为 False,指示新脚本将覆盖以前的脚本  。

  Continue Scripting on Error

  True 指示出错时停止编写脚本  。值为 False 时,则继续编写脚本  。默认值为 False  。

  Convert UDDTs to Base Types

  值为 True 时,用户定义数据类型被转换为用于创建用户定义数据类型的基本数据类型  。将运行脚本的数据库中不存在用户定义数据类型时,请使用 True  。默认值为 False,指示将使用 UDDT 为用户定义数据类型编写脚本  。

  Generate Script for Dependent Objects

  生成依赖对象的脚本为在执行所选对象的脚本时必须存在的任何对象生成脚本  。默认值为 True  。

  Include Descriptive Headers

  值为 True 时,说明性注释被添加到脚本中,将脚本分成若干个部分,每个对象为一个部分  。默认值为 False  。

  此项我生成时习惯修改为true,这样可以看到注释

  Include If NOT EXISTS

  值为 True 时,脚本包含一个用于检查对象在数据库中是否已经存在的语句,并在对象已经存在的情况下不尝试创建新对象  。默认值为 True  。

  Include system constraint names

  包含系统生成的约束名称,以强制声明性引用完整性  。默认值为 False  。有

  Script Collation

  将排序规则信息包含在脚本中  。默认值为 False  。

  参看 http://technet.microsoft.com/zh-cn/library/ms187582(SQL.90).aspx

  Script Create

  包含每个对象的 CREATE 语句  。默认值为 True  。

  Script Defaults

  列存在于原始对象中时包含它们的默认值  。默认值为 True  。

  Script Drop

  包含每个对象的 DROP 语句  。默认值为 False  。

  Script Extended Properties

  如果对象具有扩展属性,则在脚本中包含扩展属性  。默认值为 True  。

  Script for Server Version

  创建可在选定的 SQL Server 版本上运行的脚本  。无法为早期版本编写 SQL Server 2005 新增功能的脚本  。某些为 SQL Server 2005 创建的脚本无法在运行 SQL Server 较早版本的服务器上运行,也无法在具有较早数据库兼容级别设置的数据库中运行  。默认为 SQL Server 2005  。

  Script Logins

  要编写脚本的对象是数据库用户时,请使用“编写登录脚本”选项创建用户所依赖的登录  。默认值为 False  。

  Script Object-Level Permissions

  包含对数据库中的对象设置权限的脚本  。默认值为 False  。

  Script Owner

  值为 True 时,CREATE 语句包含当前的对象所有者或架构  。值为 False 时,CREATE 语句不包含对象所有者或架构,而且脚本创建的对象将对正在执行该脚本的用户使用默认值  。默认值为 True  。

  如果 true, 比如存储过程名字就可能是 dbo.*** 如果 false,则没有dbo.这个信息  。我习惯于false  。

  Script Statistics

  设置为“编写统计信息脚本”时,将包含 CREATE STATISTICS 语句以重新创建有关对象的统计信息  。“编写统计信息和直方图脚本”设置还会创建直方图信息  。默认为不编写统计信息脚本  。

  Script USE DATABASE

  将 USE DATABASE 语句添加到脚本中  。要确保在正确的数据库中创建数据库对象,请包含 USE DATABASE 语句  。如果预计脚本将在其他数据库中使用,请选择 False 以省略 USE DATABASE 语句  。默认值为 False  。

  Script VarDecimal Options

  包含脚本的 vardecimal 存储选项  。默认值为 False  。
参看 http://technet.microsoft.com/zh-cn/library/bb326755(SQL.90).aspx

  表和视图部分

  Script Check Constraints

  将 CHECK 约束添加到脚本中  。默认值为 True  。CHECK 约束要求输入表中的数据满足某些指定的条件  。

  Script Foreign Keys

  将外键添加到脚本中  。默认值为 True  。外键可指示和强制保持表间的关系  。

  Script Full-Text Indexes

  包含每个表的全文本索引或脚本的索引视图  。默认值为 False  。

  Script Indexes

  添加每个表的聚集索引、非聚集索引和 XML 索引,或添加脚本的索引视图  。默认值为 False  。

  Script Primary Keys

  添加对表创建主键脚本  。默认值为 True  。主键可唯一标识表的每一行  。

  Script Triggers

  添加对表创建触发器脚本  。默认值为 True  。触发器会在数据被修改时引发操作  。

  Script Unique Keys

  添加对表创建唯一键脚本  。唯一键可防止输入重复的数据  。默认值为 True  。

  其他的一些选项大家都很熟悉,就是让我们选择那些数据库对象要生成  。忽略不计  。

  在生成何种格式时,SQL Server 很方便的给我们提供了一些选项,如下:

  这里可以方便的选择以 Unicode 或“ANSI 文本”格式将脚本生成到 .sql 文件中  。

  而且可以所有脚本在一个文件,也可以每个对象的脚本在一个自己的文件  。

  

  SQL Server

  再后面就是确认生成选项,然后就生成了  。