日度归档:2018年7月26日

mssql sqlserver 让sql脚本暂停的方法分享


摘要:
在平常的sql脚本开发测试中,例:测试死锁,我们需开启一个窗体,让事务内代码运行一段代码后,等待一段时间,再向下运行,
下文将通过举例的方式分享程序暂停方法,如下所示:
实验环境:sqlserver 2008 R2


sql脚本暂停方法,通常使用waitfor关键字

select getdate()
waitfor delay'00:00:08' -- 暂停8秒
select getdate()
WAITFOR TIME '19:25';  --19点25分开始运行
WAITFOR DELAY '08:10';   --8小时10分后开始运行
select getdate()


delay命令 暂停时间不能超过24小时

mssql sqlserver 创建带条件的唯一约束索引


摘要:
下文讲述只对部分符合条件的数据加入相应的索引信息,如下所示:
实验环境:sqlserver 2008 R2



1.带条件的索引创建方法

例:创建带条件的复合索引(keyIdA,keyIdB,keyIdC)
当keyIdA 不等于空字符时候,需保证 keyIdA,keyIdB,keyIdC三个字段组成复合唯一索引,
keyIdA为空时,不做任何限制,如下所示:

 IF EXISTS(SELECT object_name(object_id) tableName,name,type_desc  from  sys.indexes  
where  name=  'un_IndexTest' )
 alter table tableName  
 drop constraint un_IndexTest
 GO 
----创建带条件的索引 
 create unique nonclustered index un_IndexTest  on  table1(keyIdA,keyIdB,keyIdC)  where  isnull(keyIdA,'')<> ''
go


2.创建可带多个空值的唯一索引

例:创建一个不验证null类型的唯一索引:

 create unique nonclustered index un_IndexTest  on  table1(keyIdA)  where  keyIdA is not null 
go 

mssql sqlserver 附加数据库时,出现“操作系统错误5 拒绝访问”的解决方法分享


摘要:
下文讲述一次附加数据库时,出现的错误
无法打开物理文件 XXX.mdf”,操作系统错误 5:”5(拒绝访问。)”
实验环境:sqlserver 2008 R2

用sql命令附加数据文件至指定数据库上时,出现以下错误信息:

无法打开物理文件 XXX.mdf”。操作系统错误 5:”5(拒绝访问。)”。 (Microsoft SQL Server,错误: 5120)

通过查阅网上的资料,发现出现此异常的原因为数据文件和数据库日志文件在当前用户下无相关权限,需在当前的数据文件上 添加相应的用户权限,则重新附加一切正常。
操作步骤:
找到**.mdf ***.ldf 右键–属性–安全 在组和用户名处添加 “everyone”用户,并赋予完全访问权限。