1、Snapshot Isolation
     Snapshot isolation must be enabled for DB
      ALTER DATABASE {DBNAME} SET allow_snapshot_isolation ON
      Set transaction isolation level snapshot
      UPDATE transactions keep old versions of data in a linked list
     新的隔离级别提供了以下优点:
  1) 提高了只读应用程序的数据可用性
  2) 允许在OLTP环境中执行非阻止读取操作
  3) 可对写入事务进行自动的强制冲突检测
sql server 2005几个好用易忘的功能  USE master
sql server 2005几个好用易忘的功能   
ALTER DATABASE T2target  SET allow_snapshot_isolation ON
sql server 2005几个好用易忘的功能   
CREATE TABLE test
sql server 2005几个好用易忘的功能   ( 
sql server 2005几个好用易忘的功能     tid 
INT NOT NULL primary key,
sql server 2005几个好用易忘的功能     tname 
VARCHAR(50NOT NULL
sql server 2005几个好用易忘的功能   )
sql server 2005几个好用易忘的功能  
INSERT INTO test VALUES(1,'version1')
sql server 2005几个好用易忘的功能  
INSERT INTO test VALUES(2,'version2')
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能
--连接一
sql server 2005几个好用易忘的功能

sql server 2005几个好用易忘的功能
USE demo2
sql server 2005几个好用易忘的功能
BEGIN TRAN
sql server 2005几个好用易忘的功能   
UPDATE test SET tname='version4' WHERE tid=2
sql server 2005几个好用易忘的功能   
SELECT * FROM test
sql server 2005几个好用易忘的功能 
commit
sql server 2005几个好用易忘的功能
--连接二
sql server 2005几个好用易忘的功能
USE demo2
sql server 2005几个好用易忘的功能   
SET transaction isolation level snapshot
sql server 2005几个好用易忘的功能   
SELECT * FROM test 
sql server 2005几个好用易忘的功能

2、OUTPUT的使用
     SQL Server 2005引入一个新的OUTPUT子句,以使您可以冲修改语句(INSERT、UPDATE、DELETE)中将数据返回到表变量中。
   新的OUTPUT子局的语法为:
OUTPUT <dml_select_list> INTO @table_variable
可以通过引用插入的表或删除的表来访问被修改的行的旧/新影象,其方式与访问触发器类似。在INSERT语句中,只能访问插入的表。在DELETE语句中,只能访问删除的表。在UPDATE语句中,可以访问插入的表和删除的表。

sql server 2005几个好用易忘的功能USE demo
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
CREATE TABLE tt 
sql server 2005几个好用易忘的功能(
sql server 2005几个好用易忘的功能  id 
INT IDENTITY
sql server 2005几个好用易忘的功能  c1 
VARCHAR(15)
sql server 2005几个好用易忘的功能)
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能
INSERT INTO tt VALUES ('r1')
sql server 2005几个好用易忘的功能
INSERT INTO tt VALUES ('r2')
sql server 2005几个好用易忘的功能
INSERT INTO tt VALUES ('r5')
sql server 2005几个好用易忘的功能
INSERT INTO tt VALUES ('r6')
sql server 2005几个好用易忘的功能
INSERT INTO tt VALUES ('r7')
sql server 2005几个好用易忘的功能
INSERT INTO tt VALUES ('r8')
sql server 2005几个好用易忘的功能
INSERT INTO tt VALUES ('r9')
sql server 2005几个好用易忘的功能
INSERT INTO tt VALUES ('r10')
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能
DECLARE @del AS TABLE (deletedId INT, deletedValue VARCHAR(15))
sql server 2005几个好用易忘的功能
DELETE tt
sql server 2005几个好用易忘的功能OUTPUT DELETED.id, DELETED.c1 
INTO @del
sql server 2005几个好用易忘的功能
WHERE id < 3
sql server 2005几个好用易忘的功能
SELECT * FROM @del
sql server 2005几个好用易忘的功能
SELECT * FROM tt
sql server 2005几个好用易忘的功能

3、Top增强

可以指定一个数字表达式,返回要通过查询影响的行数或百分比,还可以根据情况使用变量或子查询。
可以在DELETE、UPDATE和INSERT查询中使用TOP,更好地替换SET ROWCOUNT选项,使之更为有效。

sql server 2005几个好用易忘的功能CREATE TABLE toptest (column1 VARCHAR(150))
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
INSERT INTO toptest VALUES('t1')
sql server 2005几个好用易忘的功能
INSERT INTO toptest VALUES('t2')
sql server 2005几个好用易忘的功能
INSERT INTO toptest VALUES('t3')
sql server 2005几个好用易忘的功能
INSERT INTO toptest VALUES('t4')
sql server 2005几个好用易忘的功能
INSERT INTO toptest VALUES('t5')
sql server 2005几个好用易忘的功能
INSERT INTO toptest VALUES('t6')
sql server 2005几个好用易忘的功能
INSERT INTO toptest VALUES('t7')
sql server 2005几个好用易忘的功能
INSERT INTO toptest VALUES('t8')
sql server 2005几个好用易忘的功能
SELECT * FROM toptest
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能
CREATE TABLE toptest2 (column2 VARCHAR(150))
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
INSERT INTO toptest2 VALUES('c1')
sql server 2005几个好用易忘的功能
INSERT INTO toptest2 VALUES('c2')
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能
--声明3个变量
sql server 2005几个好用易忘的功能
DECLARE @a INT
sql server 2005几个好用易忘的功能
DECLARE @b INT
sql server 2005几个好用易忘的功能
DECLARE @c INT
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能
--赋值
sql server 2005几个好用易忘的功能
SET @a = 10
sql server 2005几个好用易忘的功能
SET @b = 5
sql server 2005几个好用易忘的功能
SELECT @c = @a/@b
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能
--使用计算表达式
sql server 2005几个好用易忘的功能
SELECT TOP(@c* FROM toptest
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能
--使用SELECT语句作为条件
sql server 2005几个好用易忘的功能
SELECT TOP(SELECT COUNT(*FROM toptest2) * 
sql server 2005几个好用易忘的功能
FROM toptest
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能
--指出top
sql server 2005几个好用易忘的功能
DELETE TOP(2) toptest where column1>'t6'
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能
--更新top
sql server 2005几个好用易忘的功能
UPDATE TOP(2) toptest SET column1 = 'hi' where column1<='t2'
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能
SELECT * FROM toptest
sql server 2005几个好用易忘的功能

4、排序函数 Ranking Functions
SQL Server引入几个新的排序函数:如ROW_NUMBER、RANK、DENSE_RANK等。这些新函数使您可以有效地分析数据以及向查询的结果行提供排序值。
排序函数都遵循类似的语法模式:()OVER([PARTITION BY] ORDER BY)
该函数只能在查询的两个子句中指定 - 在SELECT子句或ORDER BY子句中。
ROW_NUMBER是结果集的顺序, 而不是数据库中纪录存放的原始顺序。

sql server 2005几个好用易忘的功能CREATE TABLE rankorder
sql server 2005几个好用易忘的功能(
sql server 2005几个好用易忘的功能 orderid 
INT,
sql server 2005几个好用易忘的功能 qty 
INT
sql server 2005几个好用易忘的功能)
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
INSERT rankorder VALUES(30001,10)
sql server 2005几个好用易忘的功能
INSERT rankorder VALUES(10001,10)
sql server 2005几个好用易忘的功能
INSERT rankorder VALUES(10006,10)
sql server 2005几个好用易忘的功能
INSERT rankorder VALUES(40005,10)
sql server 2005几个好用易忘的功能
INSERT rankorder VALUES(30003,15)
sql server 2005几个好用易忘的功能
INSERT rankorder VALUES(30004,20)
sql server 2005几个好用易忘的功能
INSERT rankorder VALUES(20002,20)
sql server 2005几个好用易忘的功能
INSERT rankorder VALUES(20001,20)
sql server 2005几个好用易忘的功能
INSERT rankorder VALUES(10005,30)
sql server 2005几个好用易忘的功能
INSERT rankorder VALUES(30007,30)
sql server 2005几个好用易忘的功能
INSERT rankorder VALUES(40001,40)
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
SELECT orderid,qty,
sql server 2005几个好用易忘的功能  ROW_NUMBER() 
OVER(ORDER BY qty) AS rownumber,
sql server 2005几个好用易忘的功能  RANK()       
OVER(ORDER BY qty) AS rank,
sql server 2005几个好用易忘的功能  DENSE_RANK() 
OVER(ORDER BY qty) AS denserank 
sql server 2005几个好用易忘的功能
FROM rankorder
sql server 2005几个好用易忘的功能
ORDER BY qty


5、Common Table Expressions 

通用表表达式(CTE)是一个可以由定义语句引用的临时表命名的结果集。在他们的简单形式中,您可以将CTE视为类似于视图和派生表混合功能的改进版本。在查询的FROM子句中引用CTE的方式类似于引用派生表和视图的方式。只须定义CTE一次,即可在查询中多次引用它。在CTE的定义中,可以引用在同一批处理中定义的变量。但是CTE的真正威力在于它们的递归功能,即CTE可以包含对它们自身的引用。

sql server 2005几个好用易忘的功能SE AdventureWorks
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
WITH SalesCTE(ProductID, SalesOrderID)
sql server 2005几个好用易忘的功能
AS 
sql server 2005几个好用易忘的功能(
sql server 2005几个好用易忘的功能 
SELECT ProductID, COUNT(SalesOrderID) 
sql server 2005几个好用易忘的功能 
FROM Sales.SalesOrderDetail 
sql server 2005几个好用易忘的功能 
GROUP BY ProductID
sql server 2005几个好用易忘的功能)
sql server 2005几个好用易忘的功能
SELECT * FROM SalesCTE

Recursive CTEs 递归的通用表表达式

递归的CTE是根据至少两个查询(或者称为两个成员)构建的,一个是非递归查询,也成为固定成员,只能调用一次,另外一个是递归查询,也成为递归成员(RM),可以反复调用,直到查询不再返回行。查询由UNION ALL运算符连接为一个单独的CTE。

sql server 2005几个好用易忘的功能--使用递归的通用表表达式
sql server 2005几个好用易忘的功能
USE demo
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
CREATE TABLE CarParts
sql server 2005几个好用易忘的功能(
sql server 2005几个好用易忘的功能 CarID 
INT NOT NULL,
sql server 2005几个好用易忘的功能 Part 
VARCHAR(15),
sql server 2005几个好用易忘的功能 SubPart 
VARCHAR(15),
sql server 2005几个好用易忘的功能 Qty 
INT
sql server 2005几个好用易忘的功能)
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
INSERT CarParts VALUES (1'Body''Door'4)
sql server 2005几个好用易忘的功能
INSERT CarParts VALUES (1'Body''Trunk Lid'1)
sql server 2005几个好用易忘的功能
INSERT CarParts VALUES (1'Body''Car Hood'1)
sql server 2005几个好用易忘的功能
INSERT CarParts VALUES (1'Door''Handle'1)
sql server 2005几个好用易忘的功能
INSERT CarParts VALUES (1'Door''Lock'1)
sql server 2005几个好用易忘的功能
INSERT CarParts VALUES (1'Door''Window'1)
sql server 2005几个好用易忘的功能
INSERT CarParts VALUES (1'Body''Rivets'1000)
sql server 2005几个好用易忘的功能
INSERT CarParts VALUES (1'Door''Rivets'100)
sql server 2005几个好用易忘的功能
INSERT CarParts VALUES (1'Door''Mirror'1)
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
SELECT * FROM CarParts
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能
WITH CarPartsCTE(SubPart, Qty) 
sql server 2005几个好用易忘的功能
AS
sql server 2005几个好用易忘的功能(
sql server 2005几个好用易忘的功能 
-- 固定成员 (AM):
sql server 2005几个好用易忘的功能
 -- SELECT查询无需参考CarPartsCTE
sql server 2005几个好用易忘的功能
 SELECT SubPart, Qty
sql server 2005几个好用易忘的功能 
FROM CarParts
sql server 2005几个好用易忘的功能 
WHERE Part = 'Body'
sql server 2005几个好用易忘的功能 
UNION ALL
sql server 2005几个好用易忘的功能 
-- 递归成员 (RM):
sql server 2005几个好用易忘的功能
 -- SELECT查询参考CarPartsCTE
sql server 2005几个好用易忘的功能
 SELECT CarParts.SubPart, CarPartsCTE.Qty * CarParts.Qty
sql server 2005几个好用易忘的功能 
FROM CarPartsCTE 
sql server 2005几个好用易忘的功能 
INNER JOIN CarParts ON CarPartsCTE.SubPart = CarParts.Part
sql server 2005几个好用易忘的功能 
WHERE CarParts.CarID = 1
sql server 2005几个好用易忘的功能)
sql server 2005几个好用易忘的功能
-- 外部查询
sql server 2005几个好用易忘的功能
SELECT SubPart, SUM(Qty) AS TotalNUM
sql server 2005几个好用易忘的功能
FROM CarPartsCTE
sql server 2005几个好用易忘的功能
GROUP BY SubPart   

6、新的关系运算符 PIVOT/UNPIVOT/APPLY
PIVOT运算符将行旋转为列,并且可能同时执行聚合。使用PIVOT运算符时要注意的重要一点是,需要为它提供一个查询表达式,表达式使用视图、派生表或者是CTE只返回所关注的列。UNPIVOT运算符执行与PIVOT运算符相反的操作;他将列旋转为行了。APPLY关系运算符允许您对外部表的每个行调用指定的表值函数一次。您可以在查询的FROM子句中指定APPLY,其方式与使用JOIN关系运算符类似。APPLY具有两种形式:CROSS APPLY和OUTER APPLY。

sql server 2005几个好用易忘的功能CREATE TABLE orders
sql server 2005几个好用易忘的功能(
sql server 2005几个好用易忘的功能 Customer 
VARCHAR(10NOT NULL,
sql server 2005几个好用易忘的功能 product 
VARCHAR(20NOT NULL,
sql server 2005几个好用易忘的功能 quantity 
INT NOT NULL
sql server 2005几个好用易忘的功能)
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
INSERT orders VALUES('Mike''Bike',3)
sql server 2005几个好用易忘的功能
INSERT orders VALUES('Mike','Chain',2)
sql server 2005几个好用易忘的功能
INSERT orders VALUES('Mike','Bike',5)
sql server 2005几个好用易忘的功能
INSERT orders VALUES('Lisa','Bike',3)
sql server 2005几个好用易忘的功能
INSERT orders VALUES('Lisa','Chain',3)
sql server 2005几个好用易忘的功能
INSERT orders VALUES('Lisa','Chain',4)
sql server 2005几个好用易忘的功能
INSERT orders VALUES('Lisa','Bike',2)
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能
SELECT * FROM orders
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能
SELECT * FROM orders
sql server 2005几个好用易忘的功能PIVOT (
SUM(quantity) FOR product IN ([Bike],[Chain])) AS a
sql server 2005几个好用易忘的功能
USE demo
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
CREATE TABLE SALES1
sql server 2005几个好用易忘的功能(
sql server 2005几个好用易忘的功能  
[Year] INT,
sql server 2005几个好用易忘的功能  Quarter 
CHAR(2),
sql server 2005几个好用易忘的功能  Amount 
FLOAT
sql server 2005几个好用易忘的功能)
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
INSERT INTO SALES1 VALUES (2001'Q1'80)
sql server 2005几个好用易忘的功能
INSERT INTO SALES1 VALUES (2001'Q2'70)
sql server 2005几个好用易忘的功能
INSERT INTO SALES1 VALUES (2001'Q3'55)
sql server 2005几个好用易忘的功能
INSERT INTO SALES1 VALUES (2001'Q3'110)
sql server 2005几个好用易忘的功能
INSERT INTO SALES1 VALUES (2001'Q4'90)
sql server 2005几个好用易忘的功能
INSERT INTO SALES1 VALUES (2002'Q1'200)
sql server 2005几个好用易忘的功能
INSERT INTO SALES1 VALUES (2002'Q2'150)
sql server 2005几个好用易忘的功能
INSERT INTO SALES1 VALUES (2002'Q2'40)
sql server 2005几个好用易忘的功能
INSERT INTO SALES1 VALUES (2002'Q2'60)
sql server 2005几个好用易忘的功能
INSERT INTO SALES1 VALUES (2002'Q3'120)
sql server 2005几个好用易忘的功能
INSERT INTO SALES1 VALUES (2002'Q3'110)
sql server 2005几个好用易忘的功能
INSERT INTO SALES1 VALUES (2002'Q4'180)
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能
SELECT * FROM SALES1
sql server 2005几个好用易忘的功能PIVOT
sql server 2005几个好用易忘的功能(
SUM (Amount) --使用SUM聚合数量列
sql server 2005几个好用易忘的功能
FOR [Quarter] --PIVOT Quarter 列
sql server 2005几个好用易忘的功能
IN (Q1, Q2, Q3, Q4)) --使用季节
sql server 2005几个好用易忘的功能
AS P
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能
SELECT * INTO temp1 FROM orders
sql server 2005几个好用易忘的功能PIVOT (
sum(quantity) FOR product IN ([Bike],[Chain])) AS a
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能
SELECT * FROM temp1
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能
SELECT customer, product,quantity
sql server 2005几个好用易忘的功能
FROM temp1
sql server 2005几个好用易忘的功能UNPIVOT(quantity 
FOR product IN ([Bike],[Chain])) AS a
sql server 2005几个好用易忘的功能
----------------------------------------------------
sql server 2005几个好用易忘的功能
USE demo
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
CREATE TABLE Arrays
sql server 2005几个好用易忘的功能(
sql server 2005几个好用易忘的功能  aid 
INT NOT NULL IDENTITY PRIMARY KEY,
sql server 2005几个好用易忘的功能  array 
VARCHAR(7999NOT NULL
sql server 2005几个好用易忘的功能)
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
INSERT INTO Arrays VALUES('')
sql server 2005几个好用易忘的功能
INSERT INTO Arrays VALUES('10')
sql server 2005几个好用易忘的功能
INSERT INTO Arrays VALUES('20,40,30')
sql server 2005几个好用易忘的功能
INSERT INTO Arrays VALUES('-1,-3,-5')
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
CREATE FUNCTION  function1(@arr AS VARCHAR(7999))
sql server 2005几个好用易忘的功能  
RETURNS @t TABLE(pos INT NOT NULL, value INT NOT NULL)
sql server 2005几个好用易忘的功能
AS
sql server 2005几个好用易忘的功能
BEGIN
sql server 2005几个好用易忘的功能  
DECLARE @end AS INT@start AS INT@pos AS INT
sql server 2005几个好用易忘的功能  
SELECT @arr = @arr + ','@pos = 1,
sql server 2005几个好用易忘的功能    
@start = 1@end = CHARINDEX(','@arr@start)
sql server 2005几个好用易忘的功能  
WHILE @end > 1
sql server 2005几个好用易忘的功能  
BEGIN
sql server 2005几个好用易忘的功能    
INSERT INTO @t VALUES(@posSUBSTRING(@arr@start@end - @start))
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能    
SELECT @pos = @pos + 1,
sql server 2005几个好用易忘的功能      
@start = @end + 1@end = CHARINDEX(','@arr@start)
sql server 2005几个好用易忘的功能  
END
sql server 2005几个好用易忘的功能  
RETURN
sql server 2005几个好用易忘的功能
END
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能
--测试
sql server 2005几个好用易忘的功能
SELECT * FROM function1('200,400,300')
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能
SELECT A.aid, F.*
sql server 2005几个好用易忘的功能
FROM Arrays AS A
sql server 2005几个好用易忘的功能  
CROSS APPLY function1(array) AS F
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
SELECT A.aid, F.*
sql server 2005几个好用易忘的功能
FROM Arrays AS A
sql server 2005几个好用易忘的功能  
OUTER APPLY function1(array) AS F
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能


7、DDL触发器
SQL Server 2005可以就整个服务器或数据库的某个范围为DDL事件定义触发器。也可以为单个DDL语句(例如:CREAT_TABLE、DROP_TABLE等)或者为一组语句(例如:指定DDL_DATABASE_LEVEL_EVENTS想要触发器触发数据库所有DDL事件)定义DDL触发器。在DDL触发器内部,可以通过访问eventdata()函数获得与激发该触发器的事件有关的数据。该eventdata()函数返回有关事件的xml数据。DDL触发器特别有用的方案包括DDL更改的完整性检查、审核方案以及其他方案。

sql server 2005几个好用易忘的功能CREATE TRIGGER [ddlDatabaseTriggerLog] 
sql server 2005几个好用易忘的功能
ON DATABASE 
sql server 2005几个好用易忘的功能
FOR CREATE_ASSEMBLY,
sql server 2005几个好用易忘的功能 ALTER_ASSEMBLY,
sql server 2005几个好用易忘的功能 DROP_ASSEMBLY,
sql server 2005几个好用易忘的功能CREATE_FUNCTION,
sql server 2005几个好用易忘的功能 ALTER_FUNCTION,
sql server 2005几个好用易忘的功能 DROP_FUNCTION,
sql server 2005几个好用易忘的功能CREATE_PROCEDURE,
sql server 2005几个好用易忘的功能 ALTER_PROCEDURE,
sql server 2005几个好用易忘的功能 DROP_PROCEDURE,
sql server 2005几个好用易忘的功能CREATE_TABLE,
sql server 2005几个好用易忘的功能 ALTER_TABLE,
sql server 2005几个好用易忘的功能DROP_TABLE, 
sql server 2005几个好用易忘的功能CREATE_TRIGGER,
sql server 2005几个好用易忘的功能 ALTER_TRIGGER,
sql server 2005几个好用易忘的功能 DROP_TRIGGER,
sql server 2005几个好用易忘的功能CREATE_VIEW,
sql server 2005几个好用易忘的功能 ALTER_VIEW,
sql server 2005几个好用易忘的功能 DROP_VIEW
sql server 2005几个好用易忘的功能
AS 
sql server 2005几个好用易忘的功能
BEGIN
sql server 2005几个好用易忘的功能    
SET NOCOUNT ON;
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能    
DECLARE @data XML;
sql server 2005几个好用易忘的功能    
DECLARE @schema sysname;
sql server 2005几个好用易忘的功能    
DECLARE @object sysname;
sql server 2005几个好用易忘的功能    
DECLARE @eventType sysname;
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能    
SET @data = EVENTDATA();
sql server 2005几个好用易忘的功能    
SET @eventType = @data.value('(/EVENT_INSTANCE/EventType)[1]''sysname');
sql server 2005几个好用易忘的功能    
SET @schema = @data.value('(/EVENT_INSTANCE/SchemaName)[1]''sysname');
sql server 2005几个好用易忘的功能    
SET @object = @data.value('(/EVENT_INSTANCE/ObjectName)[1]''sysname'
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能    
IF @object IS NOT NULL
sql server 2005几个好用易忘的功能        
PRINT '  ' + @eventType + ' - ' + @schema + '.' + @object;
sql server 2005几个好用易忘的功能    
ELSE
sql server 2005几个好用易忘的功能        
PRINT '  ' + @eventType + ' - ' + @schema;
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能    
IF @eventType IS NULL
sql server 2005几个好用易忘的功能        
PRINT CONVERT(nvarchar(max), @data);
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能    
INSERT [dbo].[AppDatabaseLog] 
sql server 2005几个好用易忘的功能        (
sql server 2005几个好用易忘的功能        
[PostTime]
sql server 2005几个好用易忘的功能        
[DatabaseUser]
sql server 2005几个好用易忘的功能        
[Event]
sql server 2005几个好用易忘的功能        
[Schema]
sql server 2005几个好用易忘的功能        
[Object]
sql server 2005几个好用易忘的功能        
[TSQL]
sql server 2005几个好用易忘的功能        
[XmlEvent],
sql server 2005几个好用易忘的功能        HostName,
sql server 2005几个好用易忘的功能        Version
sql server 2005几个好用易忘的功能        ) 
sql server 2005几个好用易忘的功能    
VALUES 
sql server 2005几个好用易忘的功能        (
sql server 2005几个好用易忘的功能        
GETDATE(), 
sql server 2005几个好用易忘的功能        
CONVERT(sysname, CURRENT_USER), 
sql server 2005几个好用易忘的功能        
@eventType
sql server 2005几个好用易忘的功能        
CONVERT(sysname, @schema), 
sql server 2005几个好用易忘的功能        
CONVERT(sysname, @object), 
sql server 2005几个好用易忘的功能        
@data.value('(/EVENT_INSTANCE/TSQLCommand)[1]''nvarchar(max)'), 
sql server 2005几个好用易忘的功能        
@data,HOST_NAME(),'1.3'
sql server 2005几个好用易忘的功能        
sql server 2005几个好用易忘的功能        );
sql server 2005几个好用易忘的功能
END;
sql server 2005几个好用易忘的功能
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
SET ANSI_NULLS OFF
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能
SET QUOTED_IDENTIFIER OFF
sql server 2005几个好用易忘的功能
GO
sql server 2005几个好用易忘的功能DISABLE 
TRIGGER [ddlDatabaseTriggerLog] ON DATABASE

相关文章:

  • 2022-12-23
  • 2021-12-23
  • 2021-06-24
  • 2021-08-21
  • 2021-10-28
  • 2021-11-28
  • 2021-04-10
猜你喜欢
  • 2021-10-13
  • 2021-09-16
  • 2021-09-07
  • 2021-12-27
  • 2021-04-29
  • 2021-07-27
相关资源
相似解决方案