摘要: --得到表自动增长的ID的最后的一个值,就是出现过的最大的一个值1.select ID = IDENT_CURRENT('表名')2.select BillNo = IDENT_CURRENT('表名')1和2的答案是一样的IDENT_CURRENT 返回为“任何会话“和“任何作用域”中的“特定表”最后生成的标识值。@@IDENTITY 返回为“当前会话”的“所有作用域”中的“任何表”最后生成的标识值。SCOPE_IDENTITY 返回为“当前会话”和“当前作用域“中的“任何表”最后生成的标识值。 阅读全文
posted @ 2012-07-19 15:20 成天狂 阅读(230) 评论(0) 推荐(0) 编辑
摘要: //sql update 触发器 获得被update的行的信息create trigger TgName on tb for update as if update(recommend) begin update tb set commenddate=(getdate()) from tb inner join inserted on tb.vlistid=Inserted.vlistid end 关键在于Inserted表 触发器语句中使用了两种特殊的表:deleted 表和 inserted 表。 Deleted 表用于存储 DELETE 和 UPDATE 语句所影响的行的复本。在执行 . 阅读全文
posted @ 2012-07-19 15:19 成天狂 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 查询从m到n的这几条记录m-ngoselect top (n-m+1) * from stu where id not in (select top (m-1) ID from stu )--51-100select top 50 * from stu where id not in (select top 50 ID from stu ) 阅读全文
posted @ 2012-07-19 15:19 成天狂 阅读(126) 评论(0) 推荐(0) 编辑
摘要: --查询重复的数据select * from stu where Code in(select Code from stu group by Code,Namehaving Count(ID) > 1)and Name in (select Name from stu group by Code,Namehaving Count(ID) > 1)--用重复的字段分组,不重复的字段Count--第二种 只能查询出Code这一个字段重复的数据select * from stu where Code=( select Code from stu group by Code having 阅读全文
posted @ 2012-07-19 15:18 成天狂 阅读(556) 评论(0) 推荐(0) 编辑
摘要: --主键约束(Primary Key constraint):要求主键列的数据唯一,并且不允许为空。--唯一约束(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值。--检查约束(Check Constraint):某列取值范围限制、格式限制等,如有关年龄的约束。--默认约束(Default Constraint):某列的默认值,如我们的男性同学较多,性别默认为男。--外键约束(Foreign Key):用于在两表之间建立关系需要制定引用主表的哪一列。语法如下alter table 表名add constraint 约束名 约束类型 具体的约束说明示例:--添加主 阅读全文
posted @ 2012-07-19 15:17 成天狂 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 判断数据库是否存在 if exists (select * from sys.databases where name = '数据库名') drop database [数据库名] 判断表是否存在 if exists (select * from sysobjects where id = object_id(N'[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [表名] 判断存储过程是否存在 if exists (select * from sysobjects wher 阅读全文
posted @ 2012-07-19 15:15 成天狂 阅读(325) 评论(0) 推荐(0) 编辑
摘要: PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P完整语法:table_sourcePIVOT(聚合函数(value_column)FOR pivot_columnIN(<column_list>))UNPIVOT用于将列明转为列值(即列转行),在SQL Server 2000可以用UNION来实现完整语法:table_sourceUNPIVOT(value_columnFOR pivot_columnIN(<column_lis 阅读全文
posted @ 2012-07-19 15:14 成天狂 阅读(657) 评论(0) 推荐(0) 编辑
摘要: 有重复数据主要有一下几种情况: 1.存在两条完全相同的纪录 这是最简单的一种情况,用关键字distinct就可以去掉 example: select distinct * from table(表名) where (条件) 2.存在部分字段相同的纪录(有主键id即唯一键) 如果是这种情况的话用distinct是过滤不了的,这就要用到主键id的唯一性特点及group by分组 example: select * from table where id in (select max(id) from table group by [去除重复的字段名列表,....]) 3.没有唯一键ID 这种情况我 阅读全文
posted @ 2012-07-19 15:13 成天狂 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 比如有这样一个需求,一张表格(User_Salary)包含每个人(UserName)每个月份(Month)发的薪水(Salary)求这样一个结果集:每个人每月所发薪水及累计所得薪水和,如下表UserNameMonthSalaryAAA2010/121000AAA2011/012000AAA2011/023000BBB2010/122000BBB2011/012500BBB2011/022500结果UserNameMonthSalaryCumulationAAA2010/1210001000AAA2011/0120003000AAA2011/0230006000BBB2010/122000200 阅读全文
posted @ 2012-07-19 15:11 成天狂 阅读(4705) 评论(0) 推荐(0) 编辑
摘要: 最常用的://取到天数 例如:2012-02-02select substring(convert(nvarchar,getdate(),21),1,10)//取到秒数 例如:2012-02-02 13:52:41select substring(convert(nvarchar,getdate(),21),1,19)Sql Server 中一个非常强大的日期格式化函数Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSelect CONVERT(varchar(100), GETDATE(), 1): 05/16/06 阅读全文
posted @ 2012-07-19 15:08 成天狂 阅读(196) 评论(0) 推荐(0) 编辑