![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL Server
七色鸟
这个作者很懒,什么都没留下…
展开
-
关于SQL Server中的系统表——sysobjects
SQL Server的每个数据库内都有此系统表,它存放该数据库内创建的所有对象,如约束、默认值、日志、规则、存储过程等,每个对象在表中占一行。 以下是此系统表的字段名称和相关说明。列名数据类型描述namesysname对象名。Idint对象标识号。xtypechar(2)对象类型。可以是下列对转载 2012-05-29 14:27:25 · 514 阅读 · 0 评论 -
ms sql FOR XML PATH 相关介绍
http://blog.csdn.net/gogo_jqzheng/article/details/6890463FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数或存储过程来完成的工作。那么以一个实例为主. 一.FOR XML PATH 简单介绍转载 2012-08-09 16:44:38 · 721 阅读 · 0 评论 -
MSSQL 融合同列的多行记录
这个样子的一张表ID NAME----------- ----------1 a1 b1 c1 d1 e2 f3 g4 h4 i要一句SQL搞成下面的这个样子。id原创 2012-08-09 14:50:45 · 357 阅读 · 0 评论 -
SQL语句中插入标识列获取标识ID的两种方式
SQL语句中插入标识列获取标识ID的两种方式1. scope_identity() 2. @@IDENTITY GOCREATE TABLE A(ID INT IDENTITY(1,1) PRIMARY KEY,V NVARCHAR(50))GOINSERT INTO A VALUES('A')select scope_identity() GOINSERT原创 2012-07-24 15:39:26 · 3216 阅读 · 0 评论 -
SQL2005/2008中的CTE应用--递归查询
微软从SQl2005起引入了CTE(Common Table Expression)以强化T-SQL。这是一个类似于非持久视图的好东东。按照MSDN介绍1、公用表表达式 (CTE) 可以认为是在单个 SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 语句的执行范围内定义的临时结果集 。CTE 与派生表类似,具体表现在不存储为对象,并且只在查询期间有原创 2012-07-14 17:26:55 · 510 阅读 · 0 评论 -
使用SQL函数[Split]分割字符串,并放入内存表中
今天遇到一个SQL方法的编写,需要使用到 SELECT * FROM USER WHERE ID IN(@uid)@uid为字符串,但是ID是INT类型,无法编译运行,需要使用下面的函数 表值函数 所以需要像访问表那样访问CREATE FUNCTION [dbo].[Split]( @Input varchar(4000), -- 输入字符串 @Separator原创 2011-10-17 17:08:29 · 556 阅读 · 0 评论 -
sql修改字段类型:SQL SERVER的字段类型介
SQL SERVER提供介绍说明 bit:0或1整型数字 :从-2^31(-2,147,483,648)到2^31(2,147,483,647)整型数字 small:从-2^15(-32,768)到2^15(32,767)整型数字 tiny:从0到255整型数字 decimal:从-10^38到10^38-1定精度和有效位数数字 numeric:decimal转载 2012-07-16 10:57:02 · 1565 阅读 · 0 评论 -
MSSQL 取出数据库所有的存储过程语句 PROC
今天接到一项任务,需要将数据库存储过程取出来,并要求取出相对应得存储过程注释。 取出数据库存储过程SQL语句如下:select o.[name], c.text, c.encrypted, c.number, xtype=convert(nchar(2), o.xtype), datalength(c.text), convert(varbinary(8000), c原创 2012-07-16 14:24:10 · 825 阅读 · 0 评论 -
数据库中临时表、表变量和CTE使用优劣对比
http://www.pigzz.com/201112/120Q41B2011.html数据库中临时表,表变量和CTE使用优势极其区别 view sourceprint?在写SQL时经常会用到临时表,表变量和CTE,这三者在使用时各有优势:1. 临时表:分为局部临时表和全局临时表.1.1局部临时表,创建时以#开头,在系统数据库tempdb中存储. 在当前的链接可见,链接断开转载 2012-07-14 12:18:26 · 1532 阅读 · 0 评论 -
sql server 2005中的分区函数用法(partition by 字段)
partition by关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组create database StudentDBgouse StudentDBgocreate table Student --学生成绩表转载 2012-07-03 11:07:49 · 361 阅读 · 0 评论 -
SQL2005四个排名函数(row_number、rank、dense_rank和ntile)的比较
排名函数是SQL Server2005新加的功能。在SQL Server2005中有如下四个排名函数: 1.row_number 2.rank 3.dense_rank 4.ntile 一、row_number row_number函数的用途是非常广泛,这个函数的功能是为查询出来的每一行记录生成一个序号。 其中row_number列是由row_转载 2012-07-31 16:06:57 · 2703 阅读 · 0 评论 -
MSSQL 获取无限级表中父节点ID
最近工作中,经常用到根据当前树节点ID获取最顶级父节点ID的操作。今天整理了一下,将SQL贴在下面,以防他日急用!希望看到的人也能在学习过程中收益。如果有哪里不妥或需要改进的地方,希望能够斧正。谢谢!DROP TABLE TREEGOCREATE TABLE TREE(PKID INT IDENTITY(1,1) ,ParentID INT )GOINSERT IN原创 2012-04-20 09:43:53 · 698 阅读 · 0 评论 -
查看数据库死锁,并查看死锁SQL,杀死死锁进程
--查看是否死锁进程 (具体看字段 blk 是否有值 加入有,为56)sp_whosp_who2--查看死锁进程具体SQLDBCC INPUTBUFFER(56)--杀死进程kill 56原创 2014-03-20 17:17:58 · 4099 阅读 · 0 评论 -
判断字符串是否是数值类型?
DECLARE @string varchar(100)SET @string = '121.6021972656'SELECT ISNUMERIC(@string)IF @string NOT LIKE '%[^0-9][.][^0-9]%' AND @string LIKE '[1-9]%' --如果还希望首位不能是0的话BEGIN SELECT @string + '转载 2013-09-17 10:13:33 · 980 阅读 · 0 评论 -
如何用SQL语句查询Excel数据?
如何用SQL语句查询Excel数据?Q:如何用SQL语句查询Excel数据?A:下列语句可在SQL SERVER中查询Excel工作表中的数据。2007和2010版本: SELECT * FROM OpenDataSource( 'Microsoft.ACE.OLEDB.12.0', 'Data Source="c:\book1.xlsx";User ID转载 2013-06-30 13:36:06 · 626 阅读 · 0 评论 -
2.物理查询处理
查询结果分两个步骤,1,查询编译,生成查询计划2,执行查询计划查询编译分三个步骤完成,分析、代数化、及查询优化。完成这些步骤后,编译器吧经过优化的查询计划保存到过程缓存中。如果今后再执行相同的查询或存储过程是,过程缓存里面已经包含了该计划,则跳过编译步骤,直接重用缓存的的计划来执行该查询或存储过程。转载 2013-05-23 15:01:59 · 503 阅读 · 0 评论 -
SQL Server 2005技术一
逻辑查询处理中的各个阶段逻辑查询处理的步骤序号(8) SELECT(9) DISTINCT (11) (1) FROM (3) JOIN (2) ON (4) WHERE (5) Group BY (6) WITH {CUBE | ROLLUP}(7) HAVING (10) ORDERBY 逻辑查询处理阶段简介1. FROM: 对FROM子句中的前两转载 2013-03-20 14:14:43 · 531 阅读 · 0 评论 -
MS SQL Server 数据库连接字符串详解
MS SQL Server 数据库连接字符串详解 问题二:超时时间已到。在从池中获取连接之前超时时间已过。出现这种情况可能是因为所有池连接都已被使用并已达到最大池大小。解决办法1.在代码里面,把未关闭的连接关闭2.扩大共享池,方法如下:解决方法可以是修改连接池的连接生存期,因为默认值是60秒,即连接从应用程序被释放后可以在池中保存的时间。具体操作步骤如下:如果是OD转载 2013-03-08 10:39:17 · 1217 阅读 · 0 评论 -
统计数据库中每张表的记录数统计
统计数据库中每张表的记录数统计,SQL如下:GOUSE eehuGOCREATE TABLE #TABLE(TNAME VARCHAR(20),COUNTS INT)GODECLARE @SQL NVARCHAR(MAX)SELECT @SQL=ISNULL(@SQL+'','')+'select [name],(select count(1) fro原创 2012-08-09 10:34:07 · 672 阅读 · 0 评论 -
datepart()函数可以方便的取到时期中的各个部分
/* datepart()函数的使用 2 * datepart()函数可以方便的取到时期中的各个部分 3 *如日期:2006-07--02 18:15:36.513 4 * yy:取年 2006 5 * mm:取月 7 6 * dd:取月中的天 2 7 * dy:取年中的天 18转载 2012-02-02 21:33:46 · 1181 阅读 · 0 评论 -
MSSQL 数据导入和导出
FROM : http://topic.csdn.net/u/20120821/15/931d9fa0-692b-4720-938b-28d7169ce3fc.html?97917Transact-SQL语句进行导入导出:1.在SQL SERVER里查询access数据:-- ======================================================SEL转载 2012-08-21 16:41:13 · 799 阅读 · 0 评论 -
查看sql语句执行时间/测试sql语句性能
写程序的人,往往需要分析所写的SQL语句是否已经优化过了,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了。 通过设置STATISTICS我们可以查看执行SQL时的系统情况。选项有PROFILE,IO ,TIME。介绍如下:SET STATISTICS PROFILE ON:显示分析、编译和执行查询所需的时间(以毫秒为单位)。 SET S转载 2012-07-13 17:30:26 · 751 阅读 · 0 评论 -
两道SQL面试题
最近面试的两道SQL题目,自认为行走江湖这么多年,这些题目总难不倒我吧!结果却相差巨大,都没做对。愧对大家一直以来对我的期望。我要反思自己的不足之处,虚心听取建议,认真的学习。这些答案,都是在CSDN上面发帖后,论坛里的高手给的答案。真是感激不尽。谢谢!CREATE TABLE #T(ID INT PRIMARY KEY,[NAME] NVARCHAR(50),[CLASS] NVARCH原创 2012-07-04 13:45:21 · 547 阅读 · 0 评论 -
SQL中获取一个关键字在某个字符串出现次数
判断一个关键字在另一个字符串中出现的次数GO-- 思路1:将字符串替换掉为空字符,然后计算替换的长度,除以关键字的长度,结果就是出现长度CREATE FUNCTION RunCount(@Souce NVARCHAR(4000),@Keyword NVARCHAR(4000) )RETURNS INTASBEGINDECLARE @NewString NVA原创 2012-06-07 10:55:02 · 2032 阅读 · 0 评论 -
常用的SQL数据库语句总结
1as 的用处 as可以对表和列取别名 在开发过程中经常遇到开始给某一个的字段去field1的名称,但后来有感觉field1字段指定不确切,于是又把此字段改成了field2,由于开始认 为field1是常量,于是到处使用字符串field1,而且程序中又含有大量对field1的处理, 此时就可以使用as例如原来的 select field1 from tableA转载 2012-02-02 21:01:49 · 353 阅读 · 0 评论 -
CASE WHEN THEN 简单案例应用
--最近遇到一个对单个记录不同类型的权限判断。譬如:我的账号是“9527”,所处的部门是“1”想把我能够查找的文档都显示出来。--现将SQL语句贴出如下,进行备注,以防忘记USE MASTERGOCREATE TABLE #FILE(ID INT IDENTITY(1,1), --标识列FileName nvarchar(50),原创 2012-02-24 16:19:46 · 477 阅读 · 0 评论 -
sql server日期时间转字符串
日期时间转字符串Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 Select CONVER转载 2012-02-02 21:26:22 · 360 阅读 · 0 评论 -
经典SQL语句汇总-2
Name XueKe Fenshu 张三 C# 80 张三 Java 88 李四 C# 78 李四 Java 81原创 2012-02-02 21:19:21 · 227 阅读 · 0 评论 -
SQL SELECT INTO 语句使用问题
Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 I原创 2012-01-13 16:12:12 · 363 阅读 · 0 评论 -
SQL Server (SQLEXPRESS)连接与 localhost区别
SQLEXPRESS不能用做web数据库,因为M$公司在EXPRESS中加了一个性能调节器,当访问量增加时,系统的反应将变慢。当然,你在开发、调试web网站时是完全可以使用EXPRESS的,但上传到空间后,EXPRESS中的数据一定要导入主机上更高版本的SQL2005中。原创 2011-08-26 16:36:35 · 1292 阅读 · 0 评论 -
sql server round函数
关于ROUND函数,我们平常理解为4舍5入,如:print ROUND(12.555, 2);结果为:12.560float 和 real 数据类型被称为近似数据类型,需要舍入的操作或等值核对中,请勿使用这些数据类型.而应使用decimaldeclare @Val原创 2011-09-13 10:45:45 · 918 阅读 · 0 评论 -
根据最后一个逗号的索引,取出最后一个字符串
--根据最后一个逗号的索引,取出最后一个字符串 --一共想出了两种方法,这是第一种create function Get_StrArrayLength( @str varchar(5000), --要分割的字符串 @split varchar(10) --分原创 2011-09-07 12:39:13 · 607 阅读 · 3 评论 -
关于SQL中Function 递归的小计
在数据库中,经常会读取树结构数据,有时候会用到递归什么的,但是使用方法对 (Function)对物理的表是做不了 insert 和update操作,只能查询,如果需要对这些数据做这些操作可以将这些数据存入内存表中,然后在方法返回后进行遍历和修改!在进行这些处理的过程中原创 2011-07-08 17:33:39 · 364 阅读 · 0 评论 -
删除数据库中表数据
删除数据库的所有表数据: declare @trun_name varchar(50)declare name_cursor cursor forselect 'truncate table ' + name from sysobjects where xtype='U' and status > 0open name_cursorfetch next from name_cursor原创 2012-03-12 20:19:43 · 403 阅读 · 0 评论 -
删除数据库日志
清空数据库日志步骤1:步骤一,首先使用SQL语句清除DUMP TRANSACTION 库名 WITH NO_LOG步骤二,在数据库客户端(SQL2005)选中要清空日志的数据库,右键——》任务——》收缩———》文件。打开如下界面:如下设置即可。然后确定即可。原创 2012-03-12 20:34:34 · 700 阅读 · 0 评论 -
SQL中自己做标识列 (邹建原创)
如果使用系统的identity,会出现这样一种情况:当删除了一条记录,再增加一条新记录时会导致新增记录的id是记录中最大id+1.这样在现存的记录中id出现间断!所以,自己做一个标识列,目的就是弥补不足,出现上面情况时id自动更新,并连续。注意:标识列是不允许修改其值的,所以如果你要实现删除后自动重排,就不能用标识列,否则会带来很多麻烦--创建得到最大id的函数create functi转载 2012-05-29 14:41:22 · 1336 阅读 · 0 评论 -
MSSQL中 各种数据表连接的写法 [左连接,右连接......]
DROP TABLE [UserInfo]DROP TABLE ScoreGOCREATE TABLE [dbo].[UserInfo]( [rid] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY, [uname] [nvarchar](50) NULL, [usex] [int] NULL, [email] [nvarchar](50) NULL原创 2012-05-29 13:50:51 · 2547 阅读 · 0 评论 -
char、varchar、text和nchar、nvarchar、ntext的区别
很多开发者进行数据库设计的时候往往并没有太多的考虑char, varchar类型,有的是根本就没注意,因为存储价格变得越来越便宜了,忘记了最开始的一些基本设计理论和原则,这点让我想到了现在的年轻人,大手一挥一把人民币就从他手里溜走了,其实我想不管是做人也好,做开发也好,细节的把握直接决定很多东西。当然还有一部分人是根本就没弄清楚他们的区别,也就随便选一个。在这里我想对他们做个简单的分析,当然如果有转载 2012-05-29 14:19:00 · 7573 阅读 · 0 评论 -
解决数据库死锁
解决数据库死锁用的sql2005运行 行版本控制的隔离级别 READ_COMMITTED_SNAPSHOT时爆在在 'READ_COMMITTED_SNAPSHOT' 附近有语法错误。执行语句ALTER DATABASE yystarSET READ_COMMITTED_SNAPSHOT ONGO原创 2012-05-27 23:05:26 · 680 阅读 · 1 评论 -
MSSQL 触发器常用操作
1、触发器。定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。常见的触发器有三种:分别应用于Insert , Update , Delete 事件。(SQL Server 2000定义了新的触发器,这里不提)我为什么要使用触发器?比如,这么两个表:Create Table Stu原创 2012-04-16 20:22:07 · 1956 阅读 · 0 评论