T-SQL 编程常用例子

 

(1) 游标CURSOR

定义,赋值,打开,使用While Loop循环读取,最后关闭。

/* 声明单向游标。双向游标定义为Scroll Cursor */

 

DECLARE MyCursor cursor 

FOR

SELECT Column1, Column2 FROM 某某表

Where 某某条件

 

OPEN MyCursor /* 打开游标*/

FETCH NEXT from MyCursor Into @A, @B /* 读取第行数据*/

WHILE @@FETCH_STATUS = 0 /* WHILE循环控制游标*/

 

BEGIN /*BEGIN-END */

//在这里,@A,@B做点事,或者改一改值什么的.

FETCH NEXT from MyCursor Into @A, @B /* 抓下一行*/

 

END

 

 

CLOSE MyCursor /* 关闭游标*/

 

DEALLOCATE MyCursor /* 删除游标,释放内存*/

 

(2) 临时表和表变量

临时表就是临时生成一个表放在Tempdb,有两种.本地临时表,名字第一个字是"#",全局临时表"##".

本地临时表只是给当前连接使用,全局的谁都可以用.除了名字有点怪异外,使用起来临时表同普通表没有任何区别.

用完后,不要忘记Drop

表变量放在内存中,体积小效率高,尽量使用.Declare创建.

declare @user table(id int,lastname varchar(50),age int)

 

(3) 系统变量

@@Rowcount : 变了多少行

@@error : 错误信息

 

(4) Case 语句,返回是一个值

有两种:

CASE 某某表达式When 某值Then 某值

When 某值Then 某值

ELSE 某值

END

 

就是比较某某表达式等于某值,2,返回某值,20等等. ELSE是兜底的.

 

CASE WHEN 某布尔表达式THEN 某值

When 某布尔表达式THEN 某值

ELSE 某值

END

就是布尔表达式是真,返回后面的某值,20,都是假,返回ELSE后面的值. CASE后面要跟END表示结束

 

(5) 事务Transaction

BEGIN TRANSACTTION /*开始一个Transaction*/

 

IF @@ERROR <> 0

ROLLBACK TRANSACTION /*如果出错,Rollback*/

ELSE

--Commit the transaction

COMMIT TRANSACTION /*一切正常就COMMIT*/

 

Transaction可以简写为Trans, 在上面三句Transaction后面都可以加个名字,常量或变量.

BEGIN TRANSACTTION 某某交易名.

有一个变量叫@TransCount是用在嵌套交易中,算算目前到了第几层的.

 

(6) 触发器Trigger

Create Trigger 某某名字

ON 某某表

FOR | AFTER | INSTEAD OF 某某事件

As

做某某触发后该干的事

 

某某事件包括: Insert,Delete, Update

 

 

(7) 视图View

Create View 视图的名字(变量, 变量...)

As

Select 语句

 

那个括号里的变量,2 可以省略.

 

(8)Data Type 数据类型

BINARY   每个字符占一个字节任何类型的数据都可存储在这种类型的字段中。

BIT 1 个字节Yes No ,以及只包含这两个数值之一的字段。

TINYINT 1 个字节介于0 255 之间的整型数。

MONEY 8 个字节符号整数。

DATETIME 8 个字节介于100 9999 年的日期或时间数值。

UNIQUEIDENTIFIER 128 个位用于远程过程调用的唯一识别数字。

REAL 4 个字节单精度浮点数。

FLOAT 8 个字节双精度浮点数。

SMALLINT 2 个字节短整型数。

INTEGER 4 个字节长整型数。

DECIMAL 17 个字节精确的数字数据类型。。

TEXT 每一字符两字节从零到最大2,14 千兆字节。

IMAGE 视实际需要而定从零到最大2,14 千兆字节。用于OLE 对象。

CHARACTER 每一字符两字节(参见注意)长度从0 255 个字符。

 

定义成TEXT也称作(MEMO)或CHAR(也称作有具体长度的TEXT(n))的字段中的字符被储存在Unicode 表示格式。Unicode字符一律需要两个字节存储每一字符。

 

 

posted @ 2009-05-16 14:44  亦心  阅读(573)  评论(0编辑  收藏  举报