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

日期: 2009-06-02 作者:齐晖 来源:TechTarget中国 英文

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

浅谈如何在SQL Server中生成脚本(图一)

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

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

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

SQL Server 2005的生成SQL Server脚本向导(“选择脚本选项”页)

SQL Server 2008 的生成 SQL Server 脚本向导(“选择脚本选项”页)

浅谈如何在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。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

齐晖
齐晖

相关推荐

  • 浅谈如何在SQL Server中生成脚本(二)

    创建可在选定的SQL Server版本上运行的脚本。无法为早期版本编写SQL Server 2005新增功能的脚本。某些为SQL Server 2005创建的脚本无法在运行……

  • 如何使用SQL Server游标(一)

    在数据库开发过程中,我们常常会遇到这样情况,即从某一结果集中逐一地读取一条记录。那么如何解决这种问题呢?

  • 为文本数据创建索引的更好方法

    怎样为文本数据创建索引?有什么更好的方法?为文本数据(varchar、nvarchar、char等)创建索引是一种很好的实现更快数据查询的方法。然而,这些索引会给存储索引的……

  • SQL Server中的聚簇索引和非聚簇索引(一)

    什么时候使用聚簇索引或非聚簇索引呢?回答这个问题有点难度,坦白地说,我即将给出的答案是一个流传已久的标准数据库管理员的回答:“具体问题具体分析”……