sqlserver 脚本和批处理指令小结

来源:asp之家 时间:2012-05-22 18:56:55 

一.脚本基础
1.USE语句
设置当前数据库。
2.声明变量
语法:DECLARE @变量名 变量类型
在声明变量后,给变量赋值之前,变量的值为NULL。
将系统函数赋给声明的变量,这个方法可以使我们能更安全地使用值,该值只有人为地改变时它才变动。如果直接使用系统函数本身,那么当它发生变动时,有
时会无法确定其究竟为何,因为大多数系统函数值是由系统确定的。这容易在你不预期的情况下导致系统改变了值,引起不可预期的后果。
(1).给变量赋值
SET:当进行变量赋值是,该值已经知道是确切值或者是其他变量时,使用SET。
SELECT:当变量赋值基于一个查询时,使用SELECT。
(2).系统函数
SQL Server 2005中有30多个无参的系统函数,其中一些最重要的如下:
@@ERROR: 返回当前连接下,最后执行的T-SQL语句的错误代码,如无错误返回0。
@@FETCH_STATUS: 和FETCH语句配合使用。
@@IDENTITY: 返回最后一句运行语句的、自动生成的标识值,作为最后INSERT或者SELECT INTO语句的结果。
@@ROWCOUNT: 返回最后一个语句影响的行数。
@@SERVERNAME: 返回脚本正在其上运行的本地服务的名字。
@@TRANCOUNT: 返回活动事务的数量,特别是针对当前连接的事务的瓶颈程度。

二.批处理
(1).GO单独占一行。在同一行上,T-SQL语句不能在GO语句之前。
(2).所有语句从脚本开始处或者上一个GO语句开始编译,直到下一个GO语句或者脚本结束,将这段代码编译到一个执行计划中并相互独立地送往服务器。前一
个执行计划中发生错误,不会影响后一个执行计划。
(3).GO不是一个T-SQL命令,只是被编辑工具识别的命令。当编辑工具碰到GO,它把GO看做一个结束批处理的标记,将其打包,然后作为一个独立单元发送到
服务器——不包括GO,服务器对于GO没有任何概念。
1.批处理中的错误
语法错误,运行时错误。
2.何时使用批处理
(1).独自成批处理的语句
有几个命令必须独自成批处理,它们包括:
CREATE DEFAULT
CREATE PROCEDURE
CREATE RULE
CREATE TRIGGER
CREATE VIEW
如果想将这些语句中的任何一条和其他语句组成单独的一个脚本,那么需要采用一个GO语句将它们分别断开,归入各自的批处理中。
(2).使用批处理建立优先级
使用批处理最可靠的例子是,当需要考虑语句执行的优先顺序时,也就是说,需要一个任务在另一个任务开始前执行。
例如:
CREATE DATABASE Test

代码如下:


CREATE TABLE TestTable
(
col1 INT,
col2 INT
)


执行语句,会发现生成的表没有在Test数据库中,而是在master数据库中(如果当前使用的数据库是系统数据库)。因为在执行脚本的时候,使用的数据
库是系统数据库,该数据库是当前的,所以生成的表在系统数据库中。看起来,应该在创建表之前指定数据库Test。然而,这样仍然存在问题。解析器试图校
验代码,发现我们用USE命令引用的数据库并不存在。原因在于创建数据库的语句和创建表的语句写在一个批处理中,在执行该脚本之前,当然数据库还没有
创建。根据批处理的要求,我们将创建数据库和创建表的脚本用GO语句分为两个独立的批处理。正确代码如下:

代码如下:


CREATE DATABASE Test
GO

USE Test
CREATE TABLE TestTable
(
col1 INT,
col2 INT
)

标签:脚本,批处理
0
投稿

猜你喜欢

  • 5个提高你站点可读性的方法

    2011-01-31 17:48:00
  • javascript+css图片切换效果

    2007-08-04 20:00:00
  • innerHTML,outerHTML,innerText,outerText用法

    2008-02-15 12:22:00
  • ASP在线生成电话图片程序

    2007-10-06 23:06:00
  • 使用DIV+CSS设计网页的好处

    2007-10-14 15:02:00
  • 怎么用FSO生成一个UNICODE格式的文本文件

    2009-05-26 15:40:00
  • SQL Server 2005:数据类型最大值

    2009-06-04 09:55:00
  • 五大提高ASP运行效率的技巧

    2007-09-20 13:15:00
  • [新手必看]15个asp编程常见问题解答

    2007-08-22 13:07:00
  • ASP中ServerVariables集合用法详解

    2007-09-14 10:26:00
  • asp上传文件自动重命名方法

    2007-08-24 09:46:00
  • 深入了解MySQL的数据类型以及建库策略

    2008-12-17 16:16:00
  • 网站设计应当让用户选,别让用户想

    2008-03-19 12:01:00
  • oracle 存储过程加密的方法

    2009-03-06 10:58:00
  • 如何在SQL2000的查询中使用XML-Data?

    2010-06-18 19:26:00
  • 表单特殊输入js验证

    2008-03-26 12:01:00
  • Web2.0视觉风格进化论 之一

    2007-11-03 19:58:00
  • ASP 改良版MD5、SHA256多重加密类(二次及多次)

    2012-11-30 20:26:47
  • IE8 在元素尺寸大于(2048px/4096px)时 alpha滤镜渲染失败

    2010-01-05 16:39:00
  • ASP如何跳出本次进入下一次循环

    2008-10-23 13:46:00
  • asp之家 网络编程 m.aspxhome.com