SQL Server 2005 T SQL 中的OUTPUT子句语法
OUTPUT子句是SQL Server 2005 中对INSERT、UPDATE和DELETE新增的,今天看见园子里有人提起(SQL2005中返回修改后的数据),就在这里记录一下它的语法。
OUTPUT { DELETED | INSERTED | from_table_name }. {* | column_name } [,...n]
INTO { @table_variable | output_table }
参数说明:
DELETED , INSERTED 和触发器里的一样,是系统的虚拟表,他们保存了以更新的原始和修改之后的值。
下面是一个完整的例子:
创建表:
CREATE TABLE product(
productId INT IDENTITY PRIMARY KEY,
Name NVARCHAR(50)
)
插入数据:
INSERT INTO product([Name])VALUES('MP3');
测试OUTPUT:
DECLARE @ProductChanges TABLE (
DeletedName NVARCHAR(50),
InsertedName NVARCHAR(50)
)
UPDATE product
SET Name='myname'
OUTPUT DELETED.Name,INSERTED.Name
INTO @ProductChanges
WHERE productId=1
SELECT DeletedName,InsertedName
from @ProductChanges
执行结果:
DeletedName InsertedName
1 MP3 myname
相关文档:
Student(S#,Sname,Sage,Ssex) 学生表
Course(C#,Cname,T#) 课程表
SC(S#,C#,score) 成绩表
Teacher(T#,Tname) 教师表
问题:
1、查询“001”课程比“002”课程成绩高的所有学生的学号;
select a.S# from (select s#,score from SC where C#='001') a,(select s#,score
fr ......
SQL code
/*----------------------------------------------------------------
-- Author :feixianxxx(poofly)
-- Date :2010-04-20 20:10:41
-- Version:
-- Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86)
Mar 29 2009 10:27:29
Copyright (c) 1988-2008 Microsoft Co ......
/*******************************************************/
/* 功能:SQL Server 2005索引碎片整理 */
/* 逻辑碎 ......
sql日期转换参数
--日期转换参数,值得收藏
select CONVERT(varchar, getdate(), 120)
2004-09-12 11:06:08
select convert(varchar(10),getdate() ,120)
----------
2009-04-09
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
20040912110608
select CONVERT( ......
Database Level
- shrinkdb
- shrinkfile
SQL Server 2008
1) Right click database
2) Tasks
3) Shrink
4) Database or file
Table level
- compression
SQL Server 2008
1) Right click table
2) Storage
3) Manage Compression ......