SQLSERVER2008
sgj_4732514
这个作者很懒,什么都没留下…
展开
-
sp_executesql介绍和使用
sp_executesql执行可以多次重用或动态生成的 Transact-SQL 语句或批处理。Transact-SQL 语句或批处理可以包含嵌入参数。语法[code="Sql"]sp_executesql [@stmt =] stmt[ {, [@params =] N'@parameter_name data_type [,...n]' } {,...原创 2011-08-22 13:26:24 · 107 阅读 · 0 评论 -
SQL SERVER 中行列转换 PIVOT UNPIVO
[size=large]PIVOT用于将列值旋转为列名、同时执行聚合运算(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P完整语法:table_sourcePIVOT(聚合函数(value_column)FOR pivot_colum...原创 2012-08-18 15:34:13 · 231 阅读 · 0 评论 -
用SQL语句查询每门成绩都大于80的学生姓名
[size=large] 昨天遇到的一个SQL面试题,感觉很有趣。表名stu 结构如下 name km fs张三 语文 81 张三 数学 75 李四 语文 76 王五 英语 90 李四 数学 90 王五 语文 81 王五 数学 99用SQL语句查询每门成绩都大于80的学生姓名 [/size][code="sql"]CREATE TABLE ...原创 2013-05-29 10:39:19 · 1650 阅读 · 0 评论 -
SQL杂谈
1、如何用convert什么的把带有时分秒的日期转为时分秒都0的日期? [code="sql"]select convert(varchar(10),getdate(),120)+' 00:00:00' [/code]2、禁用所有触发器[code="sql"]exec sp_MSforeachtable 'ALTER TABLE ? DisABLE TRIGGER ALL'[/code...原创 2012-12-14 17:33:38 · 69 阅读 · 0 评论 -
SQL 2005 with(nolock)详解
[size=large] 大家在写查询时,为了性能,往往会在表后面加一个nolock,或者是with(nolock),其目的就是查询是不锁定表,从而达到提高查询速度的目的。什么是并发访问:同一时间有多个用户访问同一资源,并发用户中如果有用户对资源做了修改,此时就会对其它用户产生某些不利的影响,例如:1:脏读,一个用户对一个资源做了修改,此时另外一个用户正好读取了这条被修改的记...原创 2013-06-17 17:03:59 · 72 阅读 · 0 评论 -
sql server 2005 输出表的函數用法
[code="SQL"]view sourceprint?01 --sql server 2005 输出表的函數用法 02 --Geovin Du 塗聚文 03 --締友計算機信息技術有限公司 04 05 create function EmailParse (@email varchar(1000)) 06 returns @t tab...原创 2012-12-25 16:02:58 · 75 阅读 · 0 评论 -
表函数与游标
[code="SQL"]--建立数据源create table tb1(zm char(8),sd datetime,ed datetime) GO insert into tb1 values('s1','1980-1-1','1980-2-1') insert into tb1 values('s2','1992-2-1','1993-3-1') GO --建立测...原创 2012-12-25 16:07:13 · 74 阅读 · 0 评论 -
Sql获取第一天、最后一天
[b]① 本月第一天[/b](--减去今天再加上1天)[code="sql"]SELECT DATEADD(DD,-DAY(GETDATE())+1,GETDATE())[/code][b]②本月最后一天[/b][code="sql"]SELECT DATEADD(DD,-DAY(DATEADD(M,1,GETDATE())),DATEADD(M,1,GETDATE()))[/code...原创 2013-01-03 14:56:18 · 125 阅读 · 0 评论 -
在sql server中利用with as实现递归功能
在sqlserver2005之前,要实现递归功能比较麻烦,比如可能会要用到临时表与while语句来循环。自sqlserver2005之后,新增了with as功能语法,即 公用表达式(CTE),让递归实现起来变的简单了。本章我们主要演示如何利用with as功能实现一个简单的递归功能。--开始实例演示--先创建一个仓库表,表名为Storage_Depositor...原创 2013-06-25 10:48:03 · 232 阅读 · 0 评论 -
left join on and
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 在使用left jion时,on和where条件的区别如下:1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)...原创 2012-09-20 10:23:01 · 106 阅读 · 0 评论 -
用FOR XML PATH将查询结果以XML输出
本文从此而来[url]http://www.cnblogs.com/doubleliang/archive/2011/07/06/2098775.html[/url]SQL Server数据库中FOR XML PATH 是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数和存储过程来完成的工作。本文以实例的形式演示了FOR XML PATH的...原创 2012-09-20 17:54:05 · 125 阅读 · 0 评论 -
SqlServer强制断开数据库已有连接的方法
在master数据库中执行如下代码[code="sql"]declare @i INTdeclare cur cursor for select spid from sysprocesses where db_name(dbid)= 'Your_Database_Name' open cur fetch next from cur into @i while @@fetch_s...原创 2013-02-22 11:03:59 · 238 阅读 · 0 评论 -
SQL2008一行转多行的精典写法
[size=x-large]--创建测试表create table t1( id int, txt varchar(30))--插入测试数据insert into t1 select 1,'aa,dd,f' UNIONSELECT 2,'ddd,ff,rt,gg'union SELECT 3,'s,dddddee,d'union SELECT...原创 2013-08-28 12:06:33 · 214 阅读 · 0 评论 -
转:避免全表扫描的sql优化
[url]http://tech.diannaodian.com/dw/data/sql/2012/0117/155727.html[/url]原创 2015-02-05 16:37:16 · 134 阅读 · 0 评论 -
查看表中索引语句
[code="sql"]SELECT object_name(object_id) tableName,name,type_desc from sys.indexes[/code][code="java"]SELECT 索引名称=a.name ,表名=c.name ,索引字段名=d.name ,索引字段位置=d.colid FROM sysindexes ...原创 2014-12-11 10:37:01 · 675 阅读 · 0 评论 -
筛选索引简单使用
[size=large]对于在强制实施数据完整性时的一种常见需求,也可以用筛选索引来解决。出于强制唯一性的目的,SQL Server支持的UNIQUE约束认为两个NULL是相等的,这意味着,如果在一个允许为NULL的列上定义了一个UNIQUE约束,那么这个列上就只能有一行可以为NULL。但在一些情况下,可能只需要对非NULL值强制实施唯一性约束,允许存在多个NULL值。ANSI SQL确实支持这种...原创 2012-08-17 11:29:05 · 282 阅读 · 0 评论 -
排名函数(ROW_NUMBER、RANK、DENSE_RANK)及OVER子句
[code="SQL"]--在部门内新水排名(如果有相同名次,用dense_rank)SELECT row_number() over(PARTITION BY t.deptno --按部门分组ORDER BY t.sal) rn, --部门内按薪水排序 t.sal, t.ename, t.deptno FROM emp t;--分组累计计数,注意相同sal情况S...原创 2012-08-10 10:36:36 · 753 阅读 · 0 评论 -
SQL 2005附加数据库附加 数据库失败,提示某数据库无法升级数据,因为他是只读......
[size=large]有一次遇到了这个问题,以前总是总加附加的数据库复制到sql2005默认安装data目录下,今天badidu了一下。有多了一些其它解决办法。造成这个问题的根本原因很有可能是sa的权限不够,但怎么去修改目前还不知道。现将几种方法copy如下 1.将要附加的文件拷贝到 SQL Server 默认的 Data 目录,此时附加就会成功;(以前就用这个方法,没有问题)2...原创 2011-09-25 13:36:20 · 156 阅读 · 0 评论 -
SQL中删除重复记录的N种方法
[size=large] 最近温习了一下如何在SQL中删除复生记录,感觉挺有趣。现将自己总结的几条方法归纳如下: “重复记录”有两种意义,一种是表中的所有记录完全复复,(即表中的字段均重复),一种是表中的个别字段重复 1,对第一种重复,比较好解决 SELECT DISTINCT * FROM TABLENAME 可以复到无重复的记录 如...原创 2011-09-28 11:44:57 · 114 阅读 · 0 评论 -
深入Group By分组查询
[size=large]GROUP BY 子句用来为结果集中的每一行产生聚合值。如果聚合函数没有使用 GROUP BY 子句,则只为 SELECT 语句报告一个聚合值。以下示例返回分类 2 中每种产品已销售的单位数量:USE NorthwindSELECT OrdD.ProductID AS ProdID, SUM(OrdD.Quantity) AS A...原创 2012-04-25 09:52:34 · 198 阅读 · 0 评论 -
sql server 使用for xml path 将1列多行转换为字符串连接起来
[code="sql"]create table tb ([id] int,[name] varchar(2))insert into tbselect 1,'aa' union allselect 2,'bb' union allselect 1,'cc' union allselect 3,'dd' union allselect 2,'ee' select *...原创 2012-05-22 15:31:16 · 136 阅读 · 0 评论 -
详解STUFF()的用法
[size=large]Stuff(expression1_Str,startIndex,lengthInt,expression2_Str)函数共有四个参数, 其功能是将expression1_Str中自startIndex位置起删除lengthInt个字符,然后将expression2插入到expression1_Str中的startIndex位置。startIndex 从1开始。...原创 2012-05-22 17:00:26 · 1313 阅读 · 0 评论 -
数据库的三范式
[size=large]简单描述:第三范式的要求如下: 1,每一列只有一个值 2,每一行都能区分。 3,每一个表都不包含其他表已经包含的非主关键字信息。关系数据库的几种设计范式介绍1、第一范式(1NF) 在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。 所...原创 2012-07-02 16:05:16 · 70 阅读 · 0 评论 -
聚集索引和非聚集索引(整理)
[size=large]官方说法: 聚集索引 一种索引,该索引中键值的逻辑顺序决定了表中相应行的物理顺序。 聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,后者按姓氏排列数据。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。 聚集索引对于...原创 2012-07-02 16:25:43 · 60 阅读 · 0 评论 -
给表中单个字段插入连续
[code="SQL"]方法一:SET NOCOUNT ON;USE master;IF DB_ID('Performance') IS NULL CREATE DATABASE Performance;GOUSE Performance;GO-- Creating and Populating the Nums Auxiliary TableSET ...原创 2012-07-03 10:10:22 · 114 阅读 · 0 评论 -
主键,唯一索引 聚集索引的关系 .
表通常具有包含唯一标识表中每一行的值的一列或一组列。这样的一列或多列称为表的主键 (PK),用于强制表的实体完整性。在创建或修改表时,您可以通过定义 PRIMARY KEY 约束来创建主键。-主键(PRIMARY KEY ) 来自MSDN的描述: 表通常具有包含唯一标识表中每一行的值的一列或一组列。这样的一列或多列称为表的主键 (PK),用于强制表的实体完整性。在创建或修改表时,您...原创 2012-07-03 10:49:27 · 201 阅读 · 0 评论 -
Exists练习查找最小缺失值(Missing Value)
[code="Sql"]第一种方法USE tempdb;GOIF OBJECT_ID('dbo.T1') IS NOT NULL DROP TABLE dbo.T1;GOCREATE TABLE dbo.T1( keycol INT NOT NULL PRIMARY KEY CHECK(keycol > 0), datacol VAR...原创 2012-07-17 09:34:04 · 200 阅读 · 0 评论 -
Not Exists练习
[code="sql"] IF OBJECT_ID(N'a') IS NOT NULL DROP TABLE a CREATE TABLE a (id INT NOT NULL, NAME VARCHAR(20), class VARCHAR(20), COUNT INT, date DATETIME ) INSERT ...原创 2012-07-23 14:40:27 · 197 阅读 · 0 评论 -
备份数据库方法
[size=large]--设置数据库为单用户alter database auditsystem set single_user with rollback immediate;--卸载数据库sp_detach_db 'auditsystem ' --附加数据库sp_attach_db 'auditsystem ','d:\database\auditsystem.mdf...原创 2012-04-11 12:00:18 · 106 阅读 · 0 评论 -
SQL Server 2008语句大全完整版
[code="Sql"]--======================== --设置内存选项 --======================== --设置 min server memory 配置项 EXEC sp_configure N'min server memory (MB)',0 --设置 max server memory 配置项 EXE...原创 2012-08-09 10:39:30 · 216 阅读 · 0 评论 -
Apply简单使用举例
[size=large]APPLY APPLY运算符把右表表达式应用左输入中的每一行。右表达式可以引用左输入中的列,对于左表中的每一行,都要计算一次右边输入中表达式。这一步会把左边每一行和来自右表表达式的相应行进行匹配,并将生成的结果集合并起来,返回组合后结果。APPLY有两种类型: 1、CROSS APPLY 2、OUTER APPLY 两者的区别是如果内部(...原创 2012-08-09 17:20:50 · 110 阅读 · 0 评论 -
给表加上聚集索引和非聚集索引
[code="c#"]创建简单非聚集索引以下示例为 Purchasing.ProductVendor 表的 BusinessEntityID 列创建非聚集索引。USE AdventureWorks2008R2;GOIF EXISTS (SELECT name FROM sys.indexes WHERE name = N'IX_ProductVen...原创 2014-12-11 17:28:54 · 490 阅读 · 0 评论