zoukankan      html  css  js  c++  java
  • TSQL 编程常用例子

    (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字符一律需要两个字节存储每一字符。

     

  • 相关阅读:
    Nodejs学习笔记(三)--- 模块
    Nodejs学习笔记(二)--- 事件模块
    Nodejs学习笔记(一)--- 简介及安装Node.js开发环境
    leetcode题解实践
    坑爹的bugsbunnyctf复现
    两道interesting的题目
    python 习题集
    数据结构与算法--java描述
    pentestbox下运行ssh报错,命令报错
    ntfs交换数据流在隐写
  • 原文地址:https://www.cnblogs.com/cyan/p/1458272.html
Copyright © 2011-2022 走看看