随笔分类 - SQL
深入浅出SQL Server中的死锁
摘要:简介 死锁的本质是一种僵持状态,是多个主体对于资源的争用而导致的。理解死锁首先需要对死锁所涉及的相关观念有一个理解。 一些基础知识 要理解SQL Server中的死锁,更好的方式是通过类比从更大的面理解死锁。比如说一个经典的例子就是汽车(主体)对于道路(资源)的征用,如图1所示。 图1.对于死锁的直
阅读全文
SQLServer : 几个特殊函数(RAND,CHECKSUM, NEWID)
摘要:这一篇我们来捋捋在T-SQL中可能会用到的几个特殊的函数 1. 随机数: RAND 返回从 0 到 1 之间的随机 float 值。 提供种子值的整数表达式(tinyint、smallint 或 int)。如果未指定 seed,则 Microsoft SQL Server 数据库引擎 随机分配种子值
阅读全文
存储过程中引用的常规表,临时表以及表变量是否会导致存储过程的重编译
摘要:在存储过程中,经常要引用一些表来存储一些中间数据,用完即删。对于这个中间表,用常规表,临时表或者表变量有什么区别呢? 下面我们看一下这三种中间表是否会造成执行计划的重编译。 首先打开sql server profile,监控存储过程。 1.建第一个存储过程,在存储过程中创建常规表TT1 CREATE
阅读全文
sqlserver中的表值函数和标量值函数
摘要:顾名思义:表值函数返回的是表,而标量值函数可以返回基类型 一、表值函数 用户定义表值函数返回 table 数据类型。对于内联表值函数,没有函数主体;表是单个 SELECT 语句的结果集。 以下示例创建了一个内联表值函数。此函数的输入参数为客户(商店)ID,而返回 ProductID、Name 以及
阅读全文
SQL多行转多列
摘要:--★转换结果如上图1、首先创建表:CREATE TABLE [成绩表]([编号] [int]IDENTITY(1,1) NOT NULL,[姓名] [varchar](50)NULL,[语文] [numeric](5, 2)NULL,[数学] [numeric](5, 2)NULL,[英语] [n...
阅读全文
sql行列转换
摘要:首先我们建立一张表,名为scoreInfo,各个字段的设计如下图,分别是name,course,score,表示姓名,成绩与分数,如图所示。 2 我们往表中加入数据,分别添加小明与小花的语文和数学成绩,如图所示。 3 接下来,我们要进行行列转换,列应该是name,语文,数学。我们首先要考虑是如何得到
阅读全文
sql server 由于登入失败而无法启动服务
摘要:到控制面板——管理工具——服务,找到mssqlserver这个服务,在属性里把登陆帐户改成你目前登录windows的帐户或选择本地系统账户再重新启动服务就好了
阅读全文
SQL时间戳的使用
摘要:一直对时间戳这个概念比较模糊,相信有很多朋友也都会误认为:时间戳是一个时间字段,每次增加数据时,填入当前的时间值。其实这误导了很多朋友。1.基本概念时间戳:数据库中自动生成的唯一二进制数字,与时间和日期无关的,通常用作给表行加版本戳的机制。存储大小为8个字节。每个数据库都有一个计数器,当对数据库中包...
阅读全文
SQL2008配置管理工具服务显示远程过程调用失败
摘要:前两天,装了VS2012后,打开SQL2008配置管理工具,发现SQL服务名称里什么也没有,只有一个提示:(如图) 上网搜了,试了很多方法,像什么把windows\system32\wbem下的framedyn.dll复制到system32目录下,还有照一个老外说的,下...
阅读全文
T-sql语句修改数据库逻辑名、数据库名、物理名
摘要:--更改MSSQL数据库物理文件名Sql语句的写法--注意:要在活动监视器里面确保没有进程连接你要改名的数据库!!!!!!!!!!!!!!!!!!!!-- Sql语句如下USE master --改逻辑名ALTER DATABASE YQBlog MODIFY FILE(NAME='YQBlogAA',NEWNAME='YQBlog') -- GOALTER DATABASE YQBlog MODIFY FILE(NAME='YQBlogAA_log',NEWNAME='YQBlog_log') -- GO --改数据库名EXEC
阅读全文
在计算机本机sqlserver(MSSQLSERVER)无法打开 错误:1067 程序意外终止
摘要:很有可能是杀毒时将sqlserver中的文件夹(例如:C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn)中的某些文件删除了。 解决方法: 把别人可以用的Binn目录复制一份到自己机器就可以了。
阅读全文
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时
摘要:如果想要给标识列显示的添加数据,可以使用如下的方法:set identity_insert PCInfo on--设置标识列可以显示添加数据insert into PCInfo(PCId,PCUse,PCNote) values(100,1,'aaa')--PCId为标识列set identity_insert PCInfo off--设置标识列不可以显示添加数据注意:要想显示的为某表的标识列显示添加数据,在insert语句中一定要在表后面显示要添加的字段,如:PCInfo(PCId,PCUse,PCNote),如果只写PCInfo仍然不能为PCId显示的添加数据
阅读全文
安装SQL Server 2005时出现COM+的警告/错误,下面是微软给出的解决方法。
摘要:(1)安装组件服务管理单元1.在 Windows 桌面上,单击“开始”,然后单击“运行”。 2.在“打开”框中,键入 MMC,然后单击“确定”。 3.在“控制台”窗口中,单击菜单栏上的“文件”,然后单击“添加/删除管理单元”。 4.在“添加/删除管理单元”窗口,单击“添加”。 5.在“添加独立管理单元”窗口,从管理单元列表中选择“组件服务”,然后单击“添加”。 6.单击“关闭”以关闭“添加独立管理单元”窗口,然后单击“确定”以关闭“添加/删除管理单元”窗口。 7.在“控制台根节点\组件服务”窗口,展开“组件服务”树。这就是当 COM+ 出现问题时,错误消息可能发生的地方。 8.再次运行 SQL
阅读全文
SQL Server 2005开窗函数的使用
摘要:开窗函数是SQL Server2005新增的功能,在SQL Server 2000中是没有这个功能的。SQL Server2005中的窗口函数能够迅速查看不同级别的聚合,通过它可以非常方便地累计总数、计算平均值、以及执行其它计算。窗口是用户指定的一组行。开窗函数计算从窗口派生的结果集中各行的值。窗口函数必须结合排名开窗函数或者聚合开窗函数一起使用,即OVER子句前面必须是排名函数或者是聚合函数。开窗聚合函数在数据库表orderTable中有三个字段:pid(PK),orderId(int),orderQty(decimal(18,2))三个字段,现在期望得到如图所示的结果:那么我们可以直接使用
阅读全文
SQL中ROW_NUMBER()的使用
摘要:先看一句代码:select *,row_number() OVER(ORDER BY 教师工号) AS 字段编号 from 教师表其中ROW_NUMBER()函数根据‘教师工号’这列来生成一个新的数据列‘字段编号’,并且是按照升序来进行编号的。教师工号 教师姓名 教学课程编号 教学课程 字段编号--------------- -------------------- -------------------- -------------------- --------------------200401 赵子丹 1001 ASP.NET 1200402 李林 1001 ASP.NET 22004
阅读全文
sql数据库的备份还原操作出现的常见问题
摘要:在备份还原数据库时遇到的问题 以Dept为例:backup database Dept to disk='d:\Deptbackup.bak'---数据备份没问题restore database Dept from disk='d:\Deptbackup.bak'----在还原数据的时候就会有如下提示因为数据库正在使用,所以无法获得对数据库的独占访问权!!解决方法:这时需要在还原数据库前先杀死正在使用数据库得线程.该解决方案用到了系统表中的sysprocesses ,若要访问 sysprocesses,您必须定位到master 数据库。use masterdec
阅读全文
SQL Server 2005和2008定时作业的制定
摘要:--1.打开【SQL Server Management Studio】,在【对象资源管理器】列表中选择【SQL Server 代理】;--2.鼠标右击【SQL Server 代理】,选择【启动(S)】,如已启动,可以省略此步骤;--3.展开【SQL Server 代理】列表,右击【作业】-->【新建作业】;--3.1 在【常规】选项卡中:-- 输入作业名称,如"My Job";--3.2 在【步骤】选项卡中:--3.2.1 点击【新建】,输入【步骤名称】,如“步骤1”,类型默认T-SQL脚本,也可以选择SSIS包等;--3.2.2 在【数据库】一栏选择要作业处理的数
阅读全文
实现SQL数据库中表的定时删除和更新
摘要:SQL有定时执行的语句 WaitFor,可以写到一个存储过程中再执行一次语法:WaitFor{Delay 'time'|Time 'time}Delay后面的时间为延迟多少时间执行Time后面的时间为指定何时执行,格式为"HH:MM:SS",不支持日期例:------指定10:00执行Beginwaitfor time '10:00:00'select * from tablenameend-----指定等待1小时后执行beginwaitfor delay '01:00:00'select * from tablena
阅读全文
Sql Create Function简单例子
摘要:createfunction test(@Num varchar(20))--@Num 参数returns varchar(50) --返回值类型asbegindeclare @MSG varchar(20)if(@Num =1)select @MSG ='正确'elseselect @MSG ='错误'return @MSGend--调用函数select dbo.test(2)--传递参数2返回结果:错误--创建返回Table类型的函数USE pubscreate functionGetTableDetails()returns TABLEasreturn (
阅读全文
SQL中游标的使用
摘要:一般情况下,我们用SELECT这些查询语句时,都是针对的一行记录而言,如果要在查询分析器中对多行记录(即记录集)进行读取操作时,则需要使用到游标或WHILE等循环游标的类型: 1、静态游标(不检测数据行的变化) 2、动态游标(反映所有数据行的改变) 3、仅向前游标(不支持滚动) 4、键集游标(能反映修改,但不能准确反映插入、删除) 游标使用顺序: 1、定义游标 2、打开游标 3、使用游标 4、关闭游标 5、释放游标Transact-SQL:declare 游标名 cursor [LOCAL | GLOBAL][FORWARD_ONLY | SCROLL][STATIC | KEYSET | D
阅读全文
浙公网安备 33010602011771号