12 2012 档案
摘要:--演示数据IF OBJECT_ID('tempdb..#A') IS NOT NULL DROP TABLE #AGOCREATE TABLE #A (A_ID INT,A_COL INT)INSERT #ASELECT 1 , 1 UNION ALLSELECT 2 , NULL UNION ALLSELECT 3 , 1 UNION ALLSELECT 3 , 2 UNION ALLSELECT 4 , 1IF OBJECT_ID('tempdb..#B') IS NOT NULL DROP TABLE #AGOCREATE TABLE #B(B_ID I
阅读全文
摘要:参考:http://www.51testing.com/html/78/n-816578-4.html 总结 特性表变量临时表作用域当前批处理当前会话,嵌套存储过程,全局:所有会话使用场景自定义函数,存储过程,批处理自定义函数,存储过程,批处理创建方式DECLARE statement only.只能通过DECLEARE语句创建CREATE TABLE 语句SELECT INTO 语句.表名长度最多128字节最多116字节列类型可以使用自定义数据类型可以使用XML集合自定义数据类型和XML集合必须在TempDb内定义Collation字符串排序规则继承自当前数据库字符串排序规则继承自TempD
阅读全文
摘要:-- 对于表变量和临时表的例子:-- 约束(Constraint) 索引(Index) I/O 开销 作用域(SCOPE)存储位置 其他/* **************************************A) 约束(Constraint) : 在临时表和表变量,都可以创建Constraint ,针对表变量,只有定义时能加 CONSTRAINT******************************************* */USE tempdbGOIF OBJECT_ID('TEMPDB..#1') IS NOT NULL DROP TABLE dbo.#
阅读全文
摘要:/********************************** 标识符 (IDENTITY) 值是一种特殊的值,它依赖于标识列,由SQL SERVER 自动维护,是自增的,而且一般是不会重复的.但是SQL SERVER并不维护标识(IDENTITY) 值唯一(要保证标识值唯一,应该在该列上使用主键或者唯一键约束)-----------------------------------------------------------------------------------------------------------1、标识值不连续 一般来说,出现下面的情况时,可能...
阅读全文
摘要:问题 1:为什么在已经有了临时表的情况下还要引入表变量?解答 1:与临时表相比,表变量具有下列优点:如 SQL Server 联机丛书“表”(Table) 一文中所述,表变量(如局部变量)具有明确定义的范围,在该范围结束时会自动清除这些表变量。与临时表相比,表变量导致存储过程的重新编译更少。涉及表变量的事务仅维持表变量上更新的持续时间。因此,使用表变量时,需要锁定和记录资源的情况更少。因为表变量具有有限的范围并且不是持久性数据库的一部分,所以事务回滚并不影响它们。问题 2:如果说使用表变量比使用临时表导致存储过程的重新编译更少,这意味着什么?解答 2:下面的文章讨论了重新编译存储过程的一些原因
阅读全文