<Date: 2009-08-31>
<Author: medcl>
<Category: SQL Server>
use master; select C.TABLE_CATALOG,C.TABLE_NAME,K.COLUMN_NAME,C.CONSTRAINT_NAME,c.CONSTRAINT_SCHEMA as SCHEMA_NAME from INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS K, INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS C where K.CONSTRAINT_NAME=C.CONSTRAINT_NAME and C.CONSTRAINT_TYPE='PRIMARY KEY'
Msg 4104, Level 16, State 1, Line 1
无法绑定由多个部分组成的标识符 "c.CONSTRAINT_SCHEMA"。
这个SQL在有些库执行没有问题,在有些库执行就报错,奇怪了,仔细看,主要是大小写不一样,sqlserver默认安装是不区分大小写的啊,看来以后写SQL得注意,不管sqlserver大小写区不区分,我自己也还是得区分的。

本文来自: 奇怪的大小写问题
<Date: 2009-08-27>
<Author: medcl>
<Category: 小道消息>
http://www.microsoft.com/mac/default.mspx
刚发现office在mac下也有了,强!!



本文来自: mactopia
<Date: 2009-08-18>
<Author: medcl>
<Category: SQL Server>
刚刚需要创建500个表来采元数据,写了个存储过程,批量生成测试表,表的字段默认为100个。
阅读这篇文章的其余部分 »

本文来自: SQLServer2005批量创建N个空表
<Date: 2009-08-18>
<Author: medcl>
<Category: DB2>
<Date: 2009-08-05>
<Author: medcl>
<Category: SQL Server>
在SQL Server中,每一个操作SQL Server都会做一定的Log记录,比较说Insert,Update 或者Delete事件,每一个操作都会锁定行,然后对行操作做一些记录。
当一个表中的数据行很多的时候,几十万条或更多,那么删除的时候TRUNCATE TABLE则更快,它是一种快速、无日志记录的方法。TRUNCATE TABLE 与不含有 WHERE 子句的 DELETE 语句在功能上相同。但是,TRUNCATE TABLE 速度更快,并且使用更少的系统资源和事务日志资源。
与 DELETE 语句相比,TRUNCATE TABLE 具有以下优点:
所用的事务日志空间较少。
DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放用于存储表数据的数据页来删除数据,并且在事务日志中只记录页释放。
使用的锁通常较少。
当使用行锁执行 DELETE 语句时,将锁定表中各行以便删除。TRUNCATE TABLE 始终锁定表和页,而不是锁定各行。
如无例外,在表中不会留有任何页。
执行 DELETE 语句后,表仍会包含空页。例如,必须至少使用一个排他 (LCK_M_X) 表锁,才能释放堆中的空表。如果执行删除操作时没有使用表锁,表(堆)中将包含许多空页。对于索引,删除操作会留下一些空页,尽管这些页会通过后台清除进程迅速释放。
与 DELETE 语句相同,使用 TRUNCATE TABLE 清空的表的定义与其索引和其他关联对象一起保留在数据库中。
如果这个表与其他表存在外键关联,则是删除不了的。
Msg 4712, Level 16, State 1, Line 1
Cannot truncate table xxx_primarykey' because it is being referenced by a FOREIGN KEY constraint.

本文来自: SQL Server 中 DELETE 与 TRUNCATE TABLE