码迷,mamicode.com
首页 > 数据库 > 详细

Transact-SQL 学习小结

时间:2014-08-16 11:09:50      阅读:277      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   os   数据   ar   

1.把系统里所有用全局临时表的改成局部临时表,不然并发高时会引发对象已经存在的问题,不要用##要用#。

2.int 不能写成 id = ‘1‘,比如Select * from A where ID=‘1‘,因为本身的ID为int,那么你写的索引就没起到作用,而且SQL里面还需要转换类型,影响性能。

3.print error_message() 输出错误信息 可用于调试存储过程或其他批量SQL。也可以输入其他信息,print ‘test1‘;这个可以结合try cath,具体代码如下:

BEGIN TRY                    
    BEGIN
    INSERT INTO A
        (ID,Name)VALUES (1,‘test1‘)
    END
END TRY
BEGIN CATCH
    PRINT (仓库库存时没有找到对应的记录,所以需要新增一条,新增时失败! + ERROR_MESSAGE());
END CATCH

4.自动生成的ID,不用@@IDENTITY而用SCOPE_IDENTITY();就是新增表的时候,字段定义为字段1 int identity(1,1)

5.一般的金额和数量字段,没设约束,默认为null,都要设isnull(字段,0),或者新建表的时候,设置字段不为NUll,默认值为0,如:[字段] int NOT NULL DEFAULT(0)。

6.查询数据很多的时候,建议用with(nolock),select 字段1,字段2 from A with(nolock) 。

7.查数据额时候,尽量不要写*,比如select * from Person with(nolock),这样写select 字段1,字段2 from Person with(nolock)。

8.SQL里面判断不能为空,应该这样写(@Effect IS NOT NULL AND @Effect <> ‘‘),反之(@Effect IS NULL or @Effect = ‘‘)。

9.事务的使用:BEGIN TRAN :开始事务;COMMIT TRAN:提交事务;ROLLBACK TRAN:事务回滚。具体如下:

BEGIN TRY    
    BEGIN TRAN;    --开始事务        
    BEGIN
    INSERT INTO A
        (ID,Name)VALUES (1,‘Test1‘)
    END
    INSERT INTO B
        (ID,Name)
    VALUES (2,‘Test2‘)
    END
    COMMIT TRAN;--提交事务
END TRY
BEGIN CATCH
    ROLLBACK TRAN;--事务回滚
END CATCH

 

Transact-SQL 学习小结,布布扣,bubuko.com

Transact-SQL 学习小结

标签:style   blog   http   color   使用   os   数据   ar   

原文地址:http://www.cnblogs.com/allenhua/p/3900508.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!