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

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

我这里是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

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

常规选项部分:

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中生成脚本的更多相关文章

  1. 如何在SQL Server中生成和使用CRUD存储过程

    在本文中,请参阅如何在SQL Server中生成和使用CRUD存储过程. 大多数数据库系统基于缩写CRUD调用的最简单的4种数据操作操作进行操作. 此首字母缩写词代表CREATE,READ,UPDAT ...

  2. SQL Server中生成测试数据

    原文:SQL Server中生成测试数据 简介      在实际的开发过程中.很多情况下我们都需要在数据库中插入大量测试数据来对程序的功能进行测试.而生成的测试数据往往需要符合特定规则.虽然可以自己写 ...

  3. 如何在Sql Server中读取最近一段时间的记录,比如取最近3天的或最近3个月的记录。

    如何在Sql Server中读取最近一段时间的记录,比如取最近3天的或最近3个月的记录. 主要用到DATEADD函数,下面是详细语句 取最近3天 select * from 表名where rq> ...

  4. 从算法入手讲解如何在SQL Server中实现最优最简

    算法是计算机科学中一个重要的研究方向,是解决复杂问题的关键.在计算机世界中,算法无处不在.数据库是存储数据和执行大批量计算的场所,在数据库中使用一些简单的SQL命令,进行存储.查询.统计.以解决现实世 ...

  5. 如何在SQL Server中的SELECT TOP 中使用变量

    语法   [ TOP (expression) [PERCENT] [ WITH TIES ] ] 注意:expression 是在一对圆括号内的,而之后又有如下的例子 在 TOP 中使用变量 以下示 ...

  6. 浅谈如何优化SQL Server服务器

      在中国,使用SQLServer数据库的用户和企业是最多的,那么如何去设计和优化SQLSerer服务器呢,DBA应该遵循那些准则和方法呢,下面就将我的经验与大家分享,希望对大家有所帮助. AD:   ...

  7. SQL Server 数据字典生成脚本

    SELECT sysobjects.name AS 表名称 ,--sysproperties.[value] AS 表说明 ,syscolumns.name AS 字段名称 ,--properties ...

  8. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

  9. 在64位SQL Server中创建Oracle的链接服务器

    当我们同时使用SQL Server和Oracle来存储数据时,经常会用到跨库查询.为了方便使用跨库查询,一个最好的办法就是通过创建链接服务器来实现.既可以在SQL Server中创建Oracle的链接 ...

随机推荐

  1. 从Redux源码探索最佳实践

    前言 Redux 已经历了几个年头,很多 React 技术栈开发者选用它,我也是其中一员.期间看过数次源码,从最开始为了弄清楚某一部分运行方式来解决一些 Bug,到后来看源码解答我的一些假设性疑问,到 ...

  2. WPF MVVM模式下ComboBox级联效果 选择第一项

    MVVM模式下做的省市区的级联效果.通过改变ComboBox执行命令改变市,区. 解决主要问题就是默认选中第一项 1.首先要定义一个属性,继承自INotifyPropertyChanged接口.我这里 ...

  3. 移植MarS Board代码到内核3.0.35

    MarS Board提供的出厂Linux内核是3.0.15的.而Freescale的BSP都早已经更新到3.0.35.为了跟上节奏,我花了点时间把关于marsboard代码从3.0.15移植到了Fre ...

  4. SVN使用—工作模式及运行原理以及优缺点对比

    一.SVN原理 (1)运行方式 svn服务器有2种运行方式:独立服务器和借助apache运行. 1.独立服务器访问 访问地址如:svn://svn.test.com/test 2.借助Apache等h ...

  5. PHP 网站隔离配置

    PHP网站间隔离 网站内目录与目录之间是可以访问的,在某些特定情况下这样是不安全的,如果目录间网址权限被黑客利用很可能造成数据流失,在这里我们可以通过PHPopen_basedir来实现网站间目录隔离 ...

  6. ping主机脚本

    #!/bin/bash #ping net='172.16.1' uphosts=0 downhosts=0 for i in {1..254};do ping -c 1 -w 1 ${net}.${ ...

  7. VRChat简易教程2-创建一个最基本的世界(world)

    一.准备工作 1 先确保你安装了unity并导入了sdk 教程:https://www.cnblogs.com/cation/p/10311702.html 2 按之前的教程新建一个project并导 ...

  8. React Native之Fetch简单封装、获取网络状态

    1.Fetch的使用 fetch的使用非常简单,只需传入请求的url fetch('https://facebook.github.io/react-native/movies.json'); 当然是 ...

  9. fabric查看本地与远程主机信息

    #!/usr/bin/pythonfrom fabric.api import *env.user='root'env.hosts=['172.10.224.183','172.10.224.132' ...

  10. Java JDBC概要总结一(基本操作和SQL注入问题)

    JDBC定义: JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API.JDBC是Java访问数据库的标准规范,可以为不同的关系 ...