T-SQL 编程 存储过程

T-SQL编程

1.变量

全局变量

变 量含 义
@@ERROR最后一个T-SQL错误的错误号
@@IDENTITY最后一次插入的标识符
@@LANGUAGE当前使用的语言名称
@@MAX_CONNECTIONS可以创建的同时连接的最大数目
@@ROWCOUNT受上一个SQL语句影响的行数
@@SERVERNAME本地服务器的名称
@@SERVICENAME该计算机上的SQL服务名称
@@TIMETICKS当前计算机每刻度的微秒数
@@TRANSCOUNT当前连接打开的事务数
@@VERSIONSQL Server的版本信息

局部变量 关键字DECLARE

声明:DECLARE @变量名 数据类型

示例:DECLARE @name varchar(8)

赋值:

  方法1:SELECT @a=1, @b=3
  方法2:SET @a=2
  (注:SELECT一次可以给多个变量赋值,而SET只能赋值一个)

2.输出语句

语法:print 变量或字符串

SELECT 变量 as 自定义列名

示例:print ‘服务器名称’+ @@SERVERNAME

SELECT @@SERVERNAME as ‘服务器名称’

3.逻辑控制语句

IF-ELSE条件语句

语法:IF(条件)

BEGIN

语句或语句块1

END

ELSE

BEGIN

语句或语句块2

END

WHILE循环语句

语法:WHILE(条件)

BEGIN

语句或语句块

BREAK

END

CASE多分支语句

语法:CASE

WHEN 条件1 THEN 结果1

WHEN 条件1 THEN 结果1

ELSE 其它结果


GO批处理语句

逐条语句执行


子查询

1.子查询语法

示例:SELECT * FROM表名WHERE 字段>(子查询)

(注:子查询作为WHERE条件的一部分也可和DELETE,SELECT,UPDATE,INSERT一起连用,语法类似SELECT)

2.IN 和NOT IN子查询

示例1:SELECT * FROM表名WHERE 字段 IN (子查询)

示例2:DELETE * FROM 表名 WHERE 字段 NOT IN(子查询)

(注:IN后面的子查询可以返回多条记录,如果查询结果为多条用=会出现编译错误)

3.EXISTS 和NOT EXISTS子查询

示例:IF EXISTS (子查询)

BEGIN

语句块

END

(注:EXISTS一般用于子查询的存在检测,结果非空返回真,否则返回假)


事务

事务(Transaction)是单个的工作单元。如果某一事物成功,则在该事务中进行的所有数据更改均会提交,成为数据库的永久组成部分。如果事务遇到错误切必须取消或回滚,则所有数据更改均被清除

语法:开始事务:BEGIN TRANSACTION

回滚事务:ROLLBACK TRANSACTION

提交事务:COMMIT TRANSACTION

索引

索引提供指针以指向储存在表中指定列的数据值,然后根据指定的排列次序排列这些指针。数据库使用索引的方式与使用书的目录很相似:通过搜索索引找到特定的值,然后跟随指针到达包含该值的行

UNIQUE :唯一索引(可选)

CLUSTERED:聚集索引(如:拼音)

NONCLUSTERED:非聚集索引(如:笔画)

FILLFACTOR:填充因子(1-100)

1.创建索引

示例:

CREATE UNIQUE CLUSTERED INDEX 索引名

ON 表名 (列名1,列名2)

WITH FILLFACTOR=30

2.删除索引

示例:DROP INDEX 表名.索引名

3.使用索引查询

示例:

SELECT * FROM stuMarks

(INDEX = 索引名)

WHERE writtenExam BETWEEN 60 AND 90

视图

使用视图是另一种查看数据库中一个或多个表中数据的方法,视图是一种虚拟表,通常是作为来自一个或多个表的行或列的子集创建的,它的行和列来自查询中引用的表

1.创建视图

语法:CREATE VIEW 视图名

AS SELECT语句

2.删除视图

语法:DROP VIEW 视图名


存储过程

存储过程是SQL语句和控制流语句的预编译集合,存储在数据库内,可由应用程序调用执行,它可以接收参数,输出参数,返回单个或多个结果集以及返回值

1.系统存储过程

系统存储过程说明
sp_databases列出服务器上的所有数据库
sp_helpdb报告有关知道那个数据库或所有数据库的信息
sp_renamedb更改数据库的名称
sp_tables返回当前环境下可查询对象的列表
sp_columns返回某个表列的信息
sp_help查看某个表的所有信息
sp_helpconstraint查看某个表的约束
sp_helpindex查看某个表的索引
sp_stored_procedures列出当前环境中的所有存储过程
sp_password添加或修改登录账户的密码
sp_helptext显示默认值,未加密的存储过程,用户定义的存储过程,触发器或试图的实际文本


2.创建存储过程

CREATE PROCEDURE 存储过程名

参数1,参数2

AS

SQL语句

3.创建带输出参数的存储过程

定义参数的时候后面加OUTPUT(调用的时候也要加OUTPUT)

如:@Sum int OUTPUT

4.删除存储过程

DROP PROCEDURE 存储过程名

5.调用存储过程 EXEC 关键字

语法:1) EXEC 存储过程名

2) EXEC 存储过程名 参数1,参数2

3) EXEC 存储过程名 变量名1=参数1,变量名2=参数2

4) EXEC 存储过程名 变量名1 OUTPUT,变量名2=参数2


6.RETURN 关键字

RETURN 关键字表明存储过程结束并能返回整型状态值给调用者


7.自定义错误信息

语法:RAISERROR (‘自定义错误提示’,错误严重性级别,调用状态)

示例:RAISERROR (‘及格线错误,请指定0-100之间的分数’,16,1)

(注:错误严重性级别0-18,调用状态1-127)

原文地址:http://www.cnblogs.com/lz6688/articles/1688035.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值