MS SQL server相关
文章平均质量分 75
海蓝树
做个有思想的“猿”
展开
-
数据库第一范式,第二范式,第三范式
第一范式存在非主属性对码的部分依赖关系 R(A,B,C) AB是码 C是非主属性 B-->C B决定C C部分依赖于B第一范式定义:如果关系R 中所有属性的值域都是单纯域,那么关系模式R是第一范式的那么符合第一模式的特点就有1)有主关键字2)主键不能为空,3)主键不能重复,4)字段不可以再分例如: StudyNo转载 2017-10-10 11:40:09 · 438 阅读 · 0 评论 -
SQL Server 2005通用分页存储过程及多表联接应用
代码如下:if object_ID('[proc_SelectForPager]') is not null Drop Procedure [proc_SelectForPager] Go Create Proc proc_SelectForPager ( @Sql varchar(max) , @Order varchar(4000) , @CurrentPage int转载 2013-10-10 08:36:28 · 601 阅读 · 0 评论 -
SQL SERVER 创建链接服务器 SP_addlinkedserver
/////////////////////////////SQL SERVER////////////////////////////Exec sp_droplinkedsrvlogin DBVIP,NullExec sp_dropserver DBVIPEXEC sp_addlinkedserver @server='DBVIP',--被访问的服务器别名转载 2012-02-17 08:08:17 · 3309 阅读 · 0 评论 -
数据库设计中的14个技巧解决方法
1. 原始单据与实体之间的关系 可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单据对应多个实体,或多张原始单据对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。 〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三转载 2013-09-21 17:29:37 · 660 阅读 · 0 评论 -
sql for xml path用法
一.FOR XML PATH 简单介绍 那么还是首先来介绍一下FOR XML PATH ,假设现在有一张兴趣爱好表(hobby)用来存放兴趣爱好,表结构如下: 接下来我们来看应用FOR XML PATH的查询结果语句如下: SELECT * FROM @hobby FOR XML PATH转载 2013-04-03 09:05:43 · 1016 阅读 · 0 评论 -
SQL Server FOR XML PATH 语句的应用
在SQL Server中利用 FOR XML PATH 语句能够把查询的数据生成XML数据,下面是它的一些应用示例。?12345DECLARE @TempTabletable(UserIDint , UserName nvarchar(50));insert into @TempTa原创 2013-04-03 08:49:24 · 565 阅读 · 0 评论 -
将一列的多行数值转化为字符串
3707850101 开发区东门家灵芝 370785013707850102 开发区东李家灵芝 370785013707850103 开发区东王家灵芝37078501----创建一下函数alter function join_value(@kid varchar(20)) returns原创 2013-03-05 19:32:11 · 779 阅读 · 0 评论 -
常用sql语句
查找不能转化为数字的列 select ISNUMERIC(id), id from dbo.Archives_CM group by id having ISNUMERIC(id)!=1select * from dbo.Archives_CM where (right(villagecode,4)+homecode) like '%[^0-9]%' 除去左右空格sel原创 2011-03-03 13:50:00 · 573 阅读 · 0 评论 -
通过 Visual Studio 对 SQL Server 中的存储过程设置断点并进入存储过程对其进行调试
通过 Visual Studio 的 Professional 和 Team System 版本,我们可以对 SQL Server 中的存储过程设置断点并进入存储过程对其进行调试,这样我们可以象调试应用程序代码一样轻松地调试存储过程。本教程讲述对存储过程的两种调试方式:直接数据库调试和应用程序调试。 简介Visual Studio 提供丰富的调试体验。我们只需按几个按键或点转载 2013-01-11 15:24:59 · 1169 阅读 · 0 评论 -
SQL SERVER 2008 “阻止保存要求重新创建表的更改” 解决方法
MS SQL Server 2008 在建完表后,如果要插入或修改任意列时,则提示:当用户在在SQL Server 2008企业管理器中更改表结构时,必须要先删除原来的表,然后重新创建新表,才能完成表的更改,如果强行更改会出现以下提示:不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了“阻止保存要求重新创建表的更改”选项。如果要去掉此提示,打转载 2012-10-10 08:43:00 · 394 阅读 · 0 评论 -
SQL Server 2008 R2 全文搜索
本章介绍在SQL Server 2008 R2 下的全文索引,它能够对数据中的字符类型列(如varchar、text等类型)进行索引,并通过索引实现全文搜索查询。首先对比简单介绍一下常规索引和全文索引的区别,如下图:OK,下面我们就利用SQL Server 提供的存储过程来建立一个全文索引,具体步骤为:(1)启动数据库的全文处理功能(sp_fulltext_datebase);转载 2012-09-27 14:08:54 · 1730 阅读 · 0 评论 -
SQL2008 SQL Server 代理服务提供的凭据无效。若要继续操作,请为 SQL Server 代理服务提供有效的帐户
SQL2008 SQL Server 代理服务提供的凭据无效。若要继续操作,请为 SQL Server 代理服务提供有效的帐户 安装到服务器配置时出的错误:为 SQL Server 代理服务提供的凭据无效。若要继续操作,请为 SQL Server 代理服务提供有效的帐户和密码。 解决方法:直接在所有的“账户名”下拉菜单选项中选system ,就可以通过系统来在下转载 2012-09-09 10:05:50 · 9580 阅读 · 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开始,为每一条分组记录返回一个数字,这里的R转载 2012-06-26 15:29:21 · 416 阅读 · 0 评论 -
sql server中如何查看执行效率不高的语句
sql server中,如果想知道有哪些语句是执行效率不高的,应该如何查看呢?下面就将为您介绍sql server中如何查看执行效率不高的语句,供您参考。在测量功能时,先以下命令清除sql server的缓存dbcc freeProcCache在点击某个按钮,执行完后,再执行下面语句,就可以知道系统运行什么Sql和多少次了,其主要慢语句是那些了;SELECT cre转载 2013-10-16 11:40:38 · 844 阅读 · 0 评论 -
sqlserver死锁查询及查杀
use master --必须在master数据库中创建goif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_lockinfo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[p_lockinfo]转载 2013-10-19 11:37:44 · 895 阅读 · 0 评论 -
查询Sqlserver数据库死锁的一个存储过程
使用sqlserver作为数据库的应用系统,都避免不了有时候会产生死锁, 死锁出现以后,维护人员或者开发人员大多只会通过sp_who来查找死锁的进程,然后用sp_kill杀掉。利用sp_who_lock这个存储过程,可以很方便的知道哪个进程出现了死锁,出现死锁的问题在哪里.创建sp_who_lock存储过程CREATE procedure sp_who_翻译 2013-10-19 11:34:14 · 774 阅读 · 0 评论 -
配置 SQL Server Email 发送以及 Job 的 Notification通知功能
在与数据库相关的项目中, 比如像数据库维护, 性能警报, 程序出错警报或通知都会使用到在 SQL Server 中配置Email发送邮件的功能. 在BI项目中, 这种功能也使用的比较多. 比如 SSIS Package 一般会配置到 SQL Server Agent 按计划执行, 这时 Package 执行失败后就需要在 Job 中发送邮件通知以及时排除错误. 有的时候在 Package转载 2017-09-11 15:58:42 · 950 阅读 · 0 评论 -
ASP .Net Core 使用 Dapper 轻型ORM框架
一:优势1,Dapper是一个轻型的ORM类。代码就一个SqlMapper.cs文件,编译后就40K的一个很小的Dll.2,Dapper很快。Dapper的速度接近与IDataReader,取列表的数据超过了DataTable。3,Dapper支持什么数据库。Dapper支持Mysql,SqlLite,Mssql2000,Mssql2005,Oracle等一系列的数据库,当转载 2016-12-23 17:39:19 · 6374 阅读 · 3 评论 -
SQLSERVER2012误删数据恢复过程
由于长时间从事企业应用系统开发,前往用户现场升级、调试系统是比较常做的事情,但是就在周一,由于同事的失误在毫无知觉的情况下误删了生产数据库几乎所有的数据。当我发现的那一刻,感觉头发都立起来了,心想这他娘的是要领盒饭了。 为了迅速恢复系统的使用,在当时的情况下立即关闭相关系统的访问入口,前后共花费不到五分钟。经过思考,立即将最近的一次备份文件进行还原,从而保证了系统的正常运行,但是此举也不可避转载 2016-12-09 13:29:08 · 27955 阅读 · 1 评论 -
SQLServer 2008以上误操作数据库恢复方法——日志尾部备份
经常看到有人误删数据,或者误操作,特别是update和delete的时候没有加where,然后就喊爹喊娘了。人非圣贤孰能无过,做错可以理解,但不能纵容,这个以后再说,现在先来解决问题。 遇到这种情况,一般都是没有做备份,不然也不会来发问了。首先要冷静,否则会有更大的灾难。直到你放弃。解决方法: 对于这类问题,主要是找回误转载 2016-12-09 09:29:55 · 340 阅读 · 0 评论 -
SQLSERVER读懂语句运行的统计信息
对于语句的运行,除了执行计划本身,还有一些其他因素要考虑,例如语句的编译时间、执行时间、做了多少次磁盘读等。如果DBA能够把问题语句单独测试运行,可以在运行前打开下面这三个开关,收集语句运行的统计信息。这些信息对分析问题很有价值。1 SET STATISTICS TIME ON2 SET STATISTICS IO ON3 SET STATISTICS PROFILE转载 2015-04-01 13:39:37 · 794 阅读 · 0 评论 -
SET XACT_ABORT { ON | OFF } 设置整个事务终止并回滚方法
SET XACT_ABORT { ON | OFF }语法SET XACT_ABORT { ON | OFF }注释当 SET XACT_ABORT 为 ON 时,如果执行 Transact-SQL 语句产生运行时错误,则整个事务将终止并回滚。当 SET XACT_ABORT 为 OFF 时,有时只回滚产生错误转载 2013-10-19 11:30:19 · 5694 阅读 · 1 评论 -
SQL Server网站防注入终极解决方案
【说明】这篇文章发表在2009年第16期《网管员世界》上,介绍了通过“分离”网站与使用不同权限SQL Server用户的方法,解决政府网站(以及类似网站)被注入、修改的问题。而更加详细的介绍,是在正在写作的一本《中小企业虚拟机解决方案大全》(暂命名)中的一个案例的一部分,敬请期待!根据国家互联网应急中心的统计,截止2009年1月,有20%以上的政府网站被黑客入侵过。许多政府网站,由于开通网转载 2013-12-25 14:18:00 · 645 阅读 · 0 评论 -
SQL Server 2008 数据库同步的两种方式 (发布、订阅)
上篇中说了通过SQL JOB的方式对数据库的同步,这一节作为上一节的延续介绍通过发布订阅的方式实现数据库之间的同步操作。发布订阅份为两个步骤:1、发布。2、订阅。首先在数据源数据库服务器上对需要同步的数据进行发布,然后在目标数据库服务器上对上述发布进行订阅。发布可以发布一张表的部分数据,也可以对整张表进行发布。下面分别介绍发布、订阅的过程。 一、发布。发布需要用实际的服务器名称,不能使用转载 2013-12-24 14:11:40 · 757 阅读 · 0 评论 -
常用SQL语句2
新建表:create table [表名]([自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,[字段1] nVarChar(50) default \'默认值\' null ,[字段2] ntext null ,[字段3] datetime,[字段4] money null ,[字段5] int default 0,[字段6] D原创 2012-12-22 11:29:33 · 395 阅读 · 0 评论 -
数据库datetime类型怎么设置三位小数
在sql server中declare @t datetimeset @t = '2009-9-9 12:01:01:665'select @t------------------------------------------------------ 2009-09-09 12:01:01.667(所影响的行数为 1 行)在sql server中 最后面那个 只有3个值0,3转载 2013-12-20 11:09:33 · 2517 阅读 · 0 评论 -
SQL SERVER 2008删除维护计划作业
use [msdb]declare @job_name varchar(100)set @job_name = N'CustomerRelationDB_back.Subplan_1'--注:job_name为维护计划对应的job namedelete sysmaintplan_log from sysmaintplan_subplans as s转载 2013-11-30 14:42:54 · 3695 阅读 · 0 评论 -
SQL Server 检查死锁
找出什么被锁定了系统的反应迟缓意味着你应该做一些调查了。你的查找最好从测定系统发生锁定的数量和频率开始。如果你的系统环境处理事务性很高的话,这样各个应用程序争夺资源就会很常见,从而引起锁定。解决这些问题的关键就在于能够确定被锁定的资源和争夺资源的进程。sp_locksp_lock这个系统存储过程与SQL Server 2000 打包在一起,它将使你对在你系统中发生的锁定有深转载 2013-10-19 11:34:42 · 645 阅读 · 0 评论 -
怎样减少sqlserver中死锁的发生
尽量不要在一个事务中实现过于复杂的查询或更新操作。原因很简单,越是复杂的数据库操作,占用数据库资源的时间越长,引发死锁的可能性越大。尽量不要在数据库事务中要求用户响应。原因同1,这也会导致事务长时间无法结束,浪费数据库资料。死锁是由于并发访问数据库资源造成的,减少死锁就应该限制应用系统的并发访问量。我们应该合理设置后台服务的线程数,将大量数据的操作分解,分步骤,分阶转载 2012-05-18 10:53:31 · 662 阅读 · 0 评论 -
在sqlserver 中with(nolock)详解
所有Select加 With (NoLock)解决阻塞死锁在查询语句中使用 NOLOCK 和 READPAST 处理一个数据库死锁的异常时候,其中一个建议就是使用 NOLOCK 或者 READPAST 。有关 NOLOCK 和 READPAST的一些技术知识点: 对于非银行等严格要求事务的行业,搜索记录中出现或者不出现某条记录,都是在可容忍范围内,所以碰到死锁,应该首先转载 2012-05-18 10:29:31 · 625 阅读 · 0 评论 -
快速搞懂 SQL Server 的锁定和阻塞
本帖提供两种做法,可避免在 SQL Server 事务锁定时产生的不正常或长时间阻塞,让用户和程序也无限期等待,甚至引起 connection pooling 连接数超过容量。所谓的「阻塞」,是指当一个数据库会话中的事务,正在锁定其他会话事务想要读取或修改的资源,造成这些会话发出的请求进入等待的状态。SQL Server 默认会让被阻塞的请求无限期地一直等待,直到原来的事务释放相关的锁,或转载 2012-05-18 10:53:06 · 825 阅读 · 0 评论 -
ORACLE PL/SQL与SQL SERVER T-SQL一些比较
1、外连接 ·MS SQL SERVER 支持两种形式表间连接 ①从Sybase继承来的形式: 字段1 *= 字段2 (左连接) 字段1 =* 字段2 (右连接) 没有这种形式的全外连接语法 ②标准的外连接语法 left [outer]转载 2011-12-07 10:28:33 · 760 阅读 · 0 评论 -
sql server 判断是否为数值
select * from ggws_jktjb where id not in (select id from (select id , tiwen,ISNUMERIC(tiwen) as x from ggws_jktjb) as y)select id,tiwen from ggws_jktjb where patindex('%[0-9]%',tiwen)原创 2011-11-18 13:47:52 · 1768 阅读 · 0 评论 -
用SQL语句将远程SQL Server数据库中表数据导入到本地数据库相应的表中
exec sp_addlinkedserver ‘名称’,”,’SQLOLEDB’,'远程数据库的地址’<br /> <br />exec sp_addlinkedsrvlogin ‘名称’,'false’,'本地用户名称’,'远程用户名称’,'远程用户密码’<br />2、倒入表insert 数据库.dbo.表<br />select * from 远程名称.dbo.表<br />建立了连接后,试试看<br />二、方法二<br />访问不同电脑上的数据库(远程访问,只好联好网就一样),如果经常访问或原创 2011-05-11 13:34:00 · 4276 阅读 · 0 评论 -
使用CET和row_number()删除重复记录 ( sql server 2005)
<br />WITH CTE (COl1,Col2, DuplicateCount) <br />AS <br />( <br />SELECT COl1,Col2, <br />ROW_NUMBER() OVER(PARTITION BY COl1,Col2 ORDER BY Col1) AS DuplicateCount <br />FROM DuplicateRcordTable <br />) <br />DELETE <br />FROM CTE <br />WHERE Dupl原创 2011-04-28 16:55:00 · 1298 阅读 · 0 评论 -
SQL Union和SQL Union All用法与区别
UNION 指令的目的是将两个 SQL 语句的结果合并起来。从这个角度来看, UNION 跟 JOIN 有些许类似,因为这两个指令都可以由多个表格中撷取资料。 UNION 的一个限制是两个 SQL 语句所产生的栏位需要是同样的资料种类。另外,当我们用 UNION这个指令时,我们只会看到不同的资料值 (类似 SELECT DISTINCT)。 union只是将两个结果联结起来一起显示,并不是联结两个表………… UNION 的语法如下: [SQL 语句 1]UNION[SQL 语句 2] 假设我们有以下的两个表原创 2011-03-25 07:53:00 · 1038 阅读 · 0 评论 -
获取影响行数和ID的存储过程
<br /><br />方法一:<br /><br />DECLARE @SQL NVARCHAR(256)<br /> DECLARE @ReturnID INT<br /> <br /> SET @SQL = 'SELECT [InfoID] FROM TM_TeachInfo WHERE [CourseID]=1 and [infosort]=1'<br /> <br /> EXEC(@SQL)<br /> <br /> SELECT @ReturnID = @@Rowcount<br /> <br原创 2011-02-11 13:40:00 · 863 阅读 · 0 评论 -
sqlserver创建函数的实例(create function)
<br />CREATE FUNCTION 名称(@ID VARCHAR(10))<br />RETURNS varchar(8000)<br />AS<br />BEGIN<br /> declare @i int,@ret varchar(8000)<br /> declare @t table(ID VARCHAR(10),PID VARCHAR(10),Level INT)<br /> set @i = 1<br /> insert into @t select Category原创 2011-01-16 18:00:00 · 6598 阅读 · 0 评论 -
SQL Server触发器
何为触发器:触发器是数据库服务器中发生事件时自动执行的特种存储过程,这是帮助文档上的定义,就认为是一种特殊的存储过程也行,经常用于强制执行业务规则和数据完整性。在正式操作之前先把触发器原理给说说,理解好触发器的机制是对更好的运用触发器自己好处很明显。1、原理: 在执行触发器的过程中会产生两张临时表INSERTED 和DELETED,这两张表的作用简单说就是拿来记录数据的,主我们可以在触发器执行过程中更好的对数据进行操作 对表执行INSERT和UPDATE操作时都会在临时表INSERTED中拷贝一份所增加原创 2011-01-16 17:01:00 · 629 阅读 · 0 评论 -
sql server 自定义函数,触发器实例
<br />自定义函数:<br />alter function getvalues(@DictCode varchar(20),@ItemKey varchar(50))<br />returns varchar(50)<br />as<br />begin<br />declare @varlues varchar(50)<br />set @varlues=(select ItemValue from DictItem where DictCode=@DictCode and ItemKey =@It原创 2011-01-16 18:21:00 · 780 阅读 · 0 评论