上一页 1 2 3 4 5 6 7 8 9 10 ··· 18 下一页
摘要: 参考: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 阅读全文
posted @ 2012-12-11 10:58 _cc 阅读(439) 评论(0) 推荐(0) 编辑
摘要: -- 对于表变量和临时表的例子:-- 约束(Constraint) 索引(Index) I/O 开销 作用域(SCOPE)存储位置 其他/* **************************************A) 约束(Constraint) : 在临时表和表变量,都可以创建Constraint ,针对表变量,只有定义时能加 CONSTRAINT******************************************* */USE tempdbGOIF OBJECT_ID('TEMPDB..#1') IS NOT NULL DROP TABLE dbo.# 阅读全文
posted @ 2012-12-11 10:56 _cc 阅读(11576) 评论(2) 推荐(2) 编辑
摘要: /********************************** 标识符 (IDENTITY) 值是一种特殊的值,它依赖于标识列,由SQL SERVER 自动维护,是自增的,而且一般是不会重复的.但是SQL SERVER并不维护标识(IDENTITY) 值唯一(要保证标识值唯一,应该在该列上使用主键或者唯一键约束)-----------------------------------------------------------------------------------------------------------1、标识值不连续 一般来说,出现下面的情况时,可能... 阅读全文
posted @ 2012-12-06 16:48 _cc 阅读(836) 评论(0) 推荐(0) 编辑
摘要: 问题 1:为什么在已经有了临时表的情况下还要引入表变量?解答 1:与临时表相比,表变量具有下列优点:如 SQL Server 联机丛书“表”(Table) 一文中所述,表变量(如局部变量)具有明确定义的范围,在该范围结束时会自动清除这些表变量。与临时表相比,表变量导致存储过程的重新编译更少。涉及表变量的事务仅维持表变量上更新的持续时间。因此,使用表变量时,需要锁定和记录资源的情况更少。因为表变量具有有限的范围并且不是持久性数据库的一部分,所以事务回滚并不影响它们。问题 2:如果说使用表变量比使用临时表导致存储过程的重新编译更少,这意味着什么?解答 2:下面的文章讨论了重新编译存储过程的一些原因 阅读全文
posted @ 2012-12-05 10:58 _cc 阅读(868) 评论(0) 推荐(0) 编辑
摘要: --- 平均I/O时间长的语句USE tempdbSELECT TOP 10 (total_logical_reads/execution_count) AS avg_logical_reads, (total_logical_writes/execution_count) AS avg_logical_writes, (total_physical_reads/execution_count) AS avg_phys_reads, execution_count, statement_start_offset as stmt_start_offset, SUBSTRING(... 阅读全文
posted @ 2012-11-30 18:08 _cc 阅读(1261) 评论(0) 推荐(0) 编辑
摘要: 摘自:http://blogs.msdn.com/b/apgcdsd/archive/2011/02/11/sql-server-tempdb.aspx系统数据库是一个全局资源,供连接到 SQL Server 实例的所有用户使用。在现在的SQL Server里,其使用频率可能会超过用户的想象。如果Tempdb空间耗尽,许多操作将不能完成。作为一个支持工程师,会被经常问到象“我的Tempdb为什么这么大?”“是谁把我的Tempdb空间用完的?”在SQL 2000的时候,这个问题很难回答。好在SQL 2005以后,引入了一张新的管理视图:sys.dm_db_file_space_usage。通过查 阅读全文
posted @ 2012-11-26 09:59 _cc 阅读(3593) 评论(1) 推荐(1) 编辑
摘要: --查询一个库有那些同步USE TESTGOSELECT sct.dest_db ,srt.dest_owner , srt.name , sct.srvname, pub.pubid , srt.dest_table --,srt.artid ,sct.artidFROM syspublications as pub WITH(NOLOCK)inner join sysarticles as srt WITH(NOLOCK) on pub.pubid = srt.pubidinner join syssubscriptions sct with(nolock) on srt.art... 阅读全文
posted @ 2012-10-25 16:17 _cc 阅读(308) 评论(0) 推荐(1) 编辑
摘要: /*语法ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = { 80 | 90 | 100 } 参数database_name 要修改的数据库的名称。COMPATIBILITY_LEVEL { 80 | 90 | 100 }要使数据库与之兼容的 SQL Server 版本。该值必须为下列值之一:80 = SQL Server 2000 90 = SQL Server 2005 100 = SQL Server 2008 备注对于所有 SQL Server 2008 安装,默认的兼容级别都为 100。除非 model 数据库有更低的兼容级 阅读全文
posted @ 2012-10-24 14:19 _cc 阅读(14429) 评论(0) 推荐(1) 编辑
摘要: --所在星期的第一天,计算给定日期所在星期的第1天(星期日为第一天) DECLARE @Date DATETIMESET @Date= GETDATE()--与SQL Server语言版本相关的算法--思路:当前日期+星期日(每周的第1天)与当前日期的差的天数--DATEPART(WEEKDAY,DATE)的返回值与@@DATEFIRST相关SET DATEFIRST 7 -- 或者设置为美国英语SET LANGUAGE us_english; (星期日为第一天)SELECT DATEADD(WEEKDAY,1-DATEPART(WEEKDAY,@Date),@Date) AS 所在星期的第. 阅读全文
posted @ 2012-07-25 17:47 _cc 阅读(1321) 评论(0) 推荐(0) 编辑
摘要: DECLARE @Date DATETIMESET @Date=GETDATE()--前一天,给定日期的前一天SELECT DATEADD(DAY,-1,@Date) AS 前一天--后一天,给定日期的后一天 SELECT DATEADD(DAY,1,@Date) AS 后一天GO/*月初,计算给定日期所在月的第一天这个计算的技巧是先计算当前日期到“'1900-01-01'”的时间间隔数,然后把它加到“'1900-01-01'”上来获得特殊的日期,这个技巧可以用 来计算很多不同的日期。 根据SQL Server的时间表示方式可知,'1900-01-01& 阅读全文
posted @ 2012-07-20 14:39 _cc 阅读(3069) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 18 下一页