
SQL
文章平均质量分 78
Q青锋
这个作者很懒,什么都没留下…
展开
-
SQL2008配置管理工具服务显示远程过程调用失败
前两天,装了VS2012后,打开SQL2008配置管理工具,发现SQL服务名称里什么也没有,只有一个提示:(如图) 上网搜了,试了很多方法,像什么把windows\system32\wbem下的framedyn.dll复制到system32目录下,还有照一个老外说的,下什么更新补丁,都没用!!想重装SQL2008,结果运行安装程序,变成了英文版(以前装转载 2014-08-12 10:37:29 · 431 阅读 · 0 评论 -
移除函数调用能有更好的性能
原文出自:http://www.mssqltips.com/sqlservertip/2727/removing-function-calls-for-better-performance-in-sql-server/?utm_source=dailynewsletter&utm_medium=email&utm_content=headline&utm_campaign=2012726转载 2014-06-25 14:54:42 · 525 阅读 · 0 评论 -
存储过程、sp_executesql存储过程、try catch错误处理
存储过程就是把一个或多个T-SQL语句组合到一个逻辑单元中,在SQL Server数据库中保存为一个对象。在创建完成后,定义会保存在sys.sql_modules系统目录视图中。存储过程的有点:1、存储过程是在数据层汇集的T-SQL代码,可以促进代码的重复使用,同时有助于调试、寻找bug。也就是说这些代码就存放在数据库里,而不是嵌入在应用程序中的SQL代码,再由这些代码连接起来,最转载 2014-05-22 22:45:13 · 2268 阅读 · 0 评论 -
临时表、表变量、CTE的比较
1、临时表临时表包括:以#开头的局部临时表,以##开头的全局临时表。 a、存储不管是局部临时表,还是全局临时表,都会放存放在tempdb数据库中。 b、作用域局部临时表:对当前连接有效,只在创建它的存储过度、批处理、动态语句中有效,类似于C语言中局部变量的作用域。全局临时表:在所有连接对它都结束引用时,会被删除,对创建者来说,断开连接转载 2014-05-22 22:43:51 · 1233 阅读 · 0 评论 -
SQL 数据库中的存储过程的参数问题(case when)
1、SQL 数据库中的存储过程的参数问题http://bbs.youkuaiyun.com/topics/390640511?page=1#post-396062228怎么将SQL数据库中的存储过程中的参数既作为输出变量又作为输出变量?[sql] view plaincopy--drop proc proc_test --go转载 2014-05-22 22:42:04 · 3306 阅读 · 0 评论 -
T-SQL查询进阶--流程控制语句
概述 和其他高级语言一样,T-SQL中也有用于控制流程的语句。T-SQL中的流程控制语句进一步扩展了T-SQL的力量……使得大部分业务逻辑可以在数据库层面进行。但很多人对T-SQL中的流程控制语句并没有系统的了解,本篇文章会系统的对T-SQL语句中的流程控制语句进行系统讲解。 基本概念 在没有流程控制语句的情况下,T-SQL语句是按照从上到下的顺序逐转载 2014-06-24 10:20:09 · 550 阅读 · 0 评论 -
SQL Server中的Merge关键字
简介 Merge关键字是一个神奇的DML关键字。它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中插入、更新或删除行,可以对两个表进行同步。”,通过这个描述,我们可以看出Merge是关于对转载 2014-06-23 20:09:12 · 478 阅读 · 0 评论 -
T-SQL中的GROUP BY GROUPING SETS
最近遇到一个情况,需要在内网系统中出一个统计报表。需要根据不同条件使用多个group by语句.需要将所有聚合的数据进行UNION操作来完成不同维度的统计查看. 直到发现在SQL SERVER 2008之后引入了GROUPING SETS这个对于GROUP BY的增强后,上面的需求实现起来就简单多了,下面我用AdventureWork中的表作为DEMO来解释一下GROUPING转载 2014-06-23 17:37:15 · 592 阅读 · 0 评论 -
SQL Server中的窗口函数
简介 SQL Server 2012之后对窗口函数进行了极大的加强,但对于很多开发人员来说,对窗口函数却不甚了解,导致了这样强大的功能被浪费,因此本篇文章主要谈一谈SQL Server中窗口函数的概念。 什么是窗口函数 窗口函数,也可以被称为OLAP函数或分析函数。理解窗口函数可以从理解聚合函数开始,我们知道聚合函数的概念,就是将某列多行中的值按照聚合规转载 2014-06-23 11:50:38 · 731 阅读 · 0 评论 -
给存储过程传递一个表(XML运用)
http://www.sqlservercentral.com/articles/Stored+Procedures/2977/By Jacob Sebastian, 2007/05/30 Translated by 挖土(Digjim),2009年1月9日, http://digjim.cnblogs.com/ 介绍我们大部分人都会遇到特殊的情况去转载 2014-05-15 10:49:17 · 1911 阅读 · 0 评论 -
EXEC和sp_executesql的区别
1,EXEC的使用2,sp_executesql的使用 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有。还有一个最大的好处就是利用sp_executesql,能够重用执行计划,这就大大提供了执行性能(对于这个我在后面的例子中会详加说明),还转载 2014-05-18 10:22:10 · 441 阅读 · 0 评论 -
SQL 日期转换
select CONVERT(varchar, getdate(), 120 )2010-09-17 21:13:08 select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')20100917211329 select CONVERT(varcha转载 2014-06-06 16:54:02 · 437 阅读 · 0 评论 -
outer apply 与 cross apply
cross apply 和 outer apply 对于 table1 中的每一行都和派生表(表值函数根据table1当前行数据生成的动态结果集) 做了一个交叉联接。cross apply 和 outer apply 的区别在于: 如果根据table1的某行数据生成的派生表为空,cross apply 后的结果集 就不包含 table1 中的这行数据,而 outer apply 仍会包含这行数据,转载 2014-06-06 16:59:16 · 438 阅读 · 0 评论 -
SQL FOR XML PATH(多表字段拼接)
灵活运用 SQL SERVER FOR XML PATH FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作。那么以一个实例为主. 一.FOR XML PATH 简单介绍 那么还是首先来介绍一下FOR转载 2014-06-06 17:05:07 · 1460 阅读 · 0 评论 -
SQL关闭自增长列标识:SET IDENTITY_INSERT
关闭自增长列添加记录,然后再恢复自增长功能SET IDENTITY_INSERT 表名 ONinsert into 表名(字段,字段,字段) values (64,'han','guo')SET IDENTITY_INSERT 表名OFF原创 2014-09-19 14:39:15 · 852 阅读 · 0 评论 -
浅谈SQL SERVER中事务的ACID(事务相关数据交互)
简介 ACID,是指在可靠数据库管理系统(DBMS)中,事务(transaction)所应该具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability).这是可靠数据库所应具备的几个特性.下面针对这几个特性进行逐个讲解.理解原子性(Atomicity) 原子性意味着数据库中的转载 2014-06-23 11:05:31 · 660 阅读 · 0 评论 -
浅谈SQL Server中的快照
简介 数据库快照,正如其名称所示那样,是数据库在某一时间点的视图。是SQL Server在2005之后的版本引入的特性。快照的应用场景比较多,但快照设计最开始的目的是为了报表服务。比如我需要出2011的资产负债表,这需要数据保持在2011年12月31日零点时的状态,则利用快照可以实现这一点。快照还可以和镜像结合来达到读写分离的目的。下面我们来看什么是快照。 什么是快照转载 2014-06-20 15:29:51 · 521 阅读 · 0 评论 -
T-SQL查询进阶--详解公用表表达式(CTE)
简介 对于SELECT查询语句来说,通常情况下,为了使T-SQL代码更加简洁和可读,在一个查询中引用另外的结果集都是通过视图而不是子查询来进行分解的.但是,视图是作为系统对象存在数据库中,那对于结果集仅仅需要在存储过程或是用户自定义函数中使用一次的时候,使用视图就显得有些奢侈了. 公用表表达式(Common Table Expression)是SQL SERV转载 2014-06-20 15:15:26 · 638 阅读 · 0 评论 -
T-SQL查询进阶--深入浅出视图
简介 视图可以看作定义在SQL Server上的虚拟表.视图正如其名字的含义一样,是另一种查看数据的入口.常规视图本身并不存储实际的数据,而仅仅存储一个Select语句和所涉及表的metadata. 视图简单的理解如下: 通过视图,客户端不再需要知道底层table的表结构及其之间的关系。视图提供了一个统一访问数据的接口。转载 2014-06-20 15:13:25 · 443 阅读 · 0 评论 -
SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)
一.本文所涉及的内容(Contents)本文所涉及的内容(Contents)背景(Contexts)实现代码(SQL Codes)方法一:使用拼接SQL,静态列字段;方法二:使用拼接SQL,动态列字段;方法三:使用PIVOT关系运算符,静态列字段;方法四:使用PIVOT关系运算符,动态列字段;扩展阅读一:参数化表名、分组列、行转列字段、字段值;扩展阅读二:在前面的基础上加入条件过滤转载 2014-06-11 15:29:54 · 880 阅读 · 0 评论 -
SQL Server DDL触发器运用
一.本文所涉及的内容(Contents)本文所涉及的内容(Contents)背景(Contexts)基础知识(Rudimentary Knowledge)DDL运用场景(DDL Scene)补充说明(Addon)疑问(Questions)参考文献(References)二.背景(Contexts) 说到触发器,大家都会想到这样的使用场景:当一个表的数据修改了,运用DML触发插转载 2014-06-11 15:51:51 · 823 阅读 · 0 评论 -
SQL删除重复数据只保留一条
用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId havi转载 2014-05-26 10:08:58 · 519 阅读 · 0 评论 -
神器与经典--sp_helpIndex
SQL SERVER 提供了众多的SP_HELP*的系统存储过程来帮助开发者查看SQL SERVER 各种对象,如最为常用的有SP_HELPTEXT。SP_HELPINDEX [@objname] 'name' 用来获取指定表或视图上的索引,方便查看 但这么简陋的三列肯定无法满足欲求不满的DBA,使用几个系统表页可以倒腾出这些数据,而且还容易修改SELE转载 2014-06-27 20:49:02 · 1125 阅读 · 0 评论 -
[SQL Server] sp_who, sp_who2和sp_who3
[SQL Server] sp_who, sp_who2和sp_who3 sp_who可以返回如下信息: (可选参数LoginName, 或active代表活动会话数)Spid (系统进程ID)status (进程状态)loginame (用户登录名)hostname(用户主机名)blk (阻塞进程的SPID)dbn转载 2014-06-26 16:56:55 · 636 阅读 · 0 评论 -
ROW_NUMBER() OVER函数的基本用法
ROW_NUMBER() OVER函数的基本用法用法 转自:http://www.cnblogs.com/icebutterfly/archive/2009/08/05/1539657.html语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)简单的说row_number()从1开始,为每一条分组记录返回一个数转载 2014-05-15 10:02:31 · 432 阅读 · 0 评论 -
sqlserver 死锁总结
虽然不能完全避免死锁,但可以使死锁的数量减至最少。将死锁减至最少可以增加事务的吞吐量并减少系统开销,因为只有很少的事务: 回滚,而回滚会取消事务执行的所有工作。 由于死锁时回滚而由应用程序重新提交。 下列方法有助于最大限度地降低死锁: 按同一顺序访问对象。 避免事务中的用户交互。 保持事务简短并在一个批处理中。 使用低隔离级别。 使用绑定连接。转载 2014-05-08 10:24:56 · 669 阅读 · 0 评论 -
T-SQL入门攻略之2-SQL数据类型
1:字符串型1.1固定长度1.1.1非unicode类型declare @char char(10)set @char='tsql'select len(@char)/*-----------4(1 個資料列受到影響)*/select datalength(@char)/*-----------10(1 個資料列受到影響)*/1.转载 2014-05-07 17:01:46 · 641 阅读 · 0 评论 -
T-SQL入門攻略之14-获取DML语句的影响信息
首先把上节没讲完的讲完:多列更新UPDATE testbookSET price = price * 0.3,--打折 remark = '过时图书' --备注WHERE date'2000-01-01';大容量数据更新GOUPDATE file_tableSET FileName='Img100.jpg',DOCUMENT=(SELECT *转载 2014-05-07 17:13:00 · 543 阅读 · 0 评论 -
T-SQL入门攻略之6-T-SQL运算符与流程控制
1:运算符运算符是用来指定要在一个或者多个表达式中执行操作的一种符号.下面简单介绍:算术运算符号select +2+2 --'+'表示加法或者正號前面表示正號後面表示加號select -2+1 --'-'表示減法或者負號前面表示負號後面表示減號select -2*2 --'*'表示乘法select 13/5,13.0/5 --'/'表示除法注意兩個結果有何不同se转载 2014-05-07 17:06:09 · 650 阅读 · 0 评论 -
T-SQL入门攻略之4-通配符使用
1:通配符”%” 該通配符可以與任意字符串相匹配(包括空值)SELECT s_no as 学号, s_name 姓名, s_sex 性别 , s_birthday 年龄 , s_speciality 专業, s_avgrade 平均成绩 , s_dept 系别FROM student --依然使转载 2014-05-07 17:04:20 · 761 阅读 · 0 评论 -
T-SQL入門攻略之9-创建与查看数据库
创建数据库IF DB_ID('MyDatabase6') IS NOT NULL DROP DATABASE MyDatabase6;CREATE DATABASE MyDatabase6ON PRIMARY( -- 主資料檔案 NAME = ' LogicNameOfDataFile6_1', FILENA转载 2014-05-07 17:08:34 · 480 阅读 · 0 评论 -
T-SQL入门攻略之1-初识T-SQL
用几篇文章记录一些语法,转载 2014-05-07 17:00:12 · 678 阅读 · 0 评论 -
T-SQL入門攻略之12-创建数据表
使用主键约束主键不允许重复也不允许有空值--1单字段主键IF OBJECT_ID ('testtable', 'U') IS NOT NULL DROP TABLE testtable;CREATE TABLE testtable (col1 varchar(10),col2 int,col3 datetime,col4转载 2014-05-07 17:10:51 · 553 阅读 · 0 评论 -
T-SQL入門攻略之11-查看数据库对象
服务器上的数据库(1)方法一select name 數據庫名, database_id 數據庫IDfrom sys.databases(2)方法二Exec sp_helpdb数据库文件(1)方法一 跟當前數據庫有關select type_desc, name, physical_name, size,转载 2014-05-07 17:10:07 · 605 阅读 · 0 评论 -
T-SQL入门攻略之7-常見系統函數
1 :獲取服務器名與 IDselect host_name () -- 獲取服務器端計算機名稱/*GOLD-MIS06*/select host_id () -- 獲取服務器端計算機標識 ID/*1748*/2 :獲取數據庫名與 IDselect db_Name ()-- 獲取數據庫名稱-- 格式為 db_name([database_id])转载 2014-05-07 17:06:53 · 475 阅读 · 0 评论 -
T-SQL入门攻略之3-SQL简单查询
SQL语言最强大的功能是数据查询。准备工作首先建立测试数据if object_id('student')is not null drop table studentgoCREATE TABLE student(s_no nchar(8) PRIMARY KEY,s_name nchar(8)NOT NULL,s_sex nchar(2) CHECK(s_sex =转载 2014-05-07 17:03:21 · 509 阅读 · 0 评论 -
T-SQL入门攻略之8-數據庫文件
此部分詳見SQL Server 2005 中的文件和文件组 ( ㄧ )http://blog.youkuaiyun.com/wufeng4552/archive/2009/10/23/4716053.aspxSQL Server 2005 中的文件和文件组 ( 二 )http://blog.youkuaiyun.com/wufeng4552/archive/2010/01/13/5184183.aspx转载 2014-05-07 17:07:36 · 422 阅读 · 0 评论 -
T-SQL入門攻略之10-修改数据库alter database
更改数据库名(1)alter database database_namemodify name=new_database_name(2)sp_renamedb olddbname,newdbname添加数据文件和文件组(扩大)(1)添加数据文件USE masterGODECLARE @data_path nvarchar(256);-- 获取主数据文件转载 2014-05-07 17:09:21 · 856 阅读 · 0 评论 -
T-SQL入门攻略之5-T-SQL的变量与常量
在T-SQL中有两类变量,一类是全局变量,一类是局部变量。全局变量:是由SQLServer预先定义并负责维护的一类变量主要用于保存SQLServer系统的某些参数值和性能统计数据,使用范围覆盖整个程序,用户对其只能引用而不能定义。局部变量:是由用户根据需要定义的,使用范围只限于某一个批语句或者过程体内的一类变量。局部变量主要用于储存临时数据或者由存储过程返回的结果。1:全局变量的引用转载 2014-05-07 17:05:18 · 788 阅读 · 0 评论 -
断号查询
[sql] view plaincopy--测试数据 CREATE TABLE tb(col1 varchar(10),col2 int) INSERT tb SELECT 'a',2 UNION ALL SELECT 'a',3 UNION ALL SELECT 'a',6 UNION ALL SELECT 'a',7 UNIO转载 2014-05-08 14:47:13 · 1246 阅读 · 0 评论