SQL Server 2005技术内幕:T-SQL程序设计》:四部经典之二

本书是微软“SQL Server 2005技术内幕”四部之二。之一是《SQL Server 2005技术内幕:T-SQL查询》,讲的是基本的增删

改查的语法。本书讲的是提供流控制、输出、变量声明和处理以及我们在大部分非数据库编程语言中可以找到的其他功

能,如decalre、begin、if、else、waitfor、print等。同样非常经典,非常值得阅读。

以下抄录部分精彩内容:

1:不管数据库的DateFirst设为多少,输入一个星期二的日期总是返回2的公式:
 DatePart(weekday, dt + @@DateFirst - n)

2:避免在不同的存储过程/级别中把临时表命名为相同的名称是非常明智的。

3:如果语句是外部事务的一部分,外部事务回滚后,对表变量已经完成的更改将不可撤消。表变量在这一点上是独一无二的。

4:在sp_executesql中执行的查询字符串被限制为Unicode字符串(nvarchar)支持的最大长度,即4000个字符。而exec支持

常规字符串(varchar),允许最大8000个字符。另外,exec还支持一个特殊的功能:允许你在括号中串联多个变量,每个变量

都支持8000个字符的长度。

5:IF exists(select 1/0) print 'no error' 运行时不会产生错误。

6:sql server根据表达式的结果中优先级最高的数据类型确定case表达式结果的数据类型,而不是按实际返回的结果的数据类

型确定。这意味着,如果case表达式的一个then子句返回varchar,另外一个返回int,那么表达式的结果将总是int,因为int

的优先级比varchar高。

7:instead of触发器不会递归触发。

你可能感兴趣的:(sql server 2005)