问题:sqlserver2000sp3数据库复制报错:{callsp_MSget_repl_commands(6,?,0,7500000)}违反了PRIMARYKEY约束'PK__@snapshot_seqnos__1B8078A1'。不能在对象'#1A8C5468'中插入重复键。Solution:Changeofstoreprocedureindistibution:sp_MSget_repl_commandsfrom:declare@snapshot_
系统 2019-08-12 01:33:31 2091
看看跟上一个版本有啥不一样的。每个技术领域关注的角度可能都略有不同,这里主要从一个BI从业人员的角度来观察SQLServer2012在安装以及第一印象上有什么变化。建议下载iso文件:SQLFULL_ENU.iso可以直接用rar解压,方便硬盘安装。解压后的目录,双击setup.exe安装。安装起始界面,跟上一个版本变化不大。点击Installation,然后再点击右边第一项。留意到Stand-alone,这个词在MOSS里也见过。这一步没有太大的变化,似
系统 2019-08-12 01:52:22 2090
在sqlserver中来计算一个字符串在另一个字符串中出现的次数,通常会去用循环来匹配,然后计算出出现的次数,这样的效能不是很高。现在讲一种比较简单的方法也能实现同样的功能,思路如下:1:设有字符串str1str2,现在要求str1在str2中出现的次数。2:将str1后面加上一个字符,如:str1+'_',设更改后的字符串為str3。3:在str2中如果有子串str1,将之替换成str3,替换后的字符串设為str4。4:str4与str2的长度之差即為s
系统 2019-08-12 01:51:30 2090
SQLServer数据库基础编程ØGo批处理语句用于同时执行多个语句Ø使用、切换数据库usemastergoØ创建、删除数据库方法1、--判断是否存在该数据库,存在就删除if(exists(select*fromsys.databaseswherename='testHome'))dropdatabasetestHomego--创建数据库,设置数据库文件、日志文件保存目录createdatabasetestHomeon(name='testHome',fi
系统 2019-08-12 01:52:25 2089
原文:SQLServer作业监控在讲解SQLServerAgentJobs之前,先要讲解msdb。Msdb是SQLServer的系统数据库之一,用于存储SQLServer的配置、元数据等信息。包括:lSQLServerAgentJobs,JobSteps,Jobschedules,Alerts,Operators,等等。lServiceBroker,LogShipping,Backups/restore信息,维护计划、数据库邮件、基于策略管理信息等等。lS
系统 2019-08-12 01:51:30 2089
SQLServer数据库安全--创建登陆用户--createloginlogin_namefromwindowswithdefault_database=database|default_language=language;createlogin[localhost\hoojo-pc]fromwindowswithdefault_database=testHome;--创建登陆用户--createloginlogin_namewithpassword='p
系统 2019-08-12 01:55:01 2088
原文:XEvent–SQLServerLog文件对磁盘的写操作大小是多少本篇是上一篇SQLServerLog文件对磁盘的写操作大小是多少的续,使用XEvent收集SQLServerData文件和Log文件的写大小,脚本如下:DECLARE@DBNAMEVARCHAR(256)SET@DBNAME='myDB'DECLARE@sqlcmdNVARCHAR(MAX)='IFEXISTS(SELECT*FROMsys.server_event_sessionsW
系统 2019-08-12 01:33:02 2088
1.有標識列時的方案:--1.利用NotIn和SELECTTOP分页语句形式:SELECTTOP10*FROMTestTableWHERE(IDNOTIN(SELECTTOP20idFROMTestTableORDERBYid))ORDERBYIDSELECTTOP页大小*FROMTestTableWHERE(IDNOTIN(SELECTTOP页大小*(页数-1)idFROM表ORDERBYid))ORDERBYID--2.利用ID大于多少和SELECTT
系统 2019-08-12 01:54:48 2087
1.差异备份的还原不备份结尾日志的情况下还原数据创建差异备份的放在我们已经在前面一篇博客SQLServer的备份中提到了,这里我们不再赘述,下面我们给出差异备份与还原的T-SQL方法,代码如下:--创建备份设备EXECsp_addumpdevice'disk','MyAdvWorks_1','d:\backup\MyAdvWorks_1.bak';EXECsp_addumpdevice'disk','MyAdvWorks_diff1','d:\backup
系统 2019-08-12 01:32:30 2087
1.在sp_configure配置xp_cmdshell可运行2.创建一个账号test,用来执行xp_cmdshell但是非sysadmin权限3.用grant把xp_cmdshell权限赋予test4.创建代理账号,这个账号是windows账号。5.在sqlserver中设置代理账号,右击实例属性安全性下的代理中填入windows账号密码或者使用sp_xp_cmdshell_proxy_account设置代理账号SQLServer非sysadmin调用扩
系统 2019-08-12 01:33:32 2086
原文:SqlServer查看所有存储过程或视图的位置及内容selecta.name,a.[type],b.[definition]fromsys.all_objectsa,sys.sql_modulesbwherea.is_ms_shipped=0anda.object_id=b.object_idanda.[type]in('P','V','AF')orderbya.[name]asc通过这个sql语句可以查到sqlserver中的视图和存储过程的内容及
系统 2019-08-12 01:33:31 2084
什么是主键?在数据库中,常常不只是一个表,这些表之间也不是相互独立的。不同的表之间需要建立一种关系,才能将它们的数据相互沟通。而在这个沟通过程中,就需要表中有一个字段作为标志,不同的记录对应的字段取值不能相同,也不能是空白的。通过这个字段中不同的值可以区别各条记录。就像我们区别不同的人,每个人都有名字,但它却不能作为主键,因为人名很容易出现重复,而身份证号是每个人都不同的,所以可以根据它来区别不同的人。数据库的表中作为主键的字段就要像人的身份证号一样,必须
系统 2019-08-12 01:52:31 2083
以前拼接的写法set@sql='select*fromtablewhere1=1'if(@addDateisnotnull)set@sql=@sql+'andaddDate='+@addDate+''if(@name<>''andisnotnull)set@sql=@sql+'andname='+@name+''exec(@sql)下面是不采用拼接SQL字符串实现多条件查询的解决方案第一种写法是感觉代码有些冗余if(@addDateisnotnull)an
系统 2019-08-12 01:33:49 2082
数据库表A有十万条记录,查询速度本来还可以,但导入一千条数据后,问题出现了。当选择的数据在原十万条记录之间时,速度还是挺快的;但当选择的数据在这一千条数据之间时,速度变得奇慢。凭经验,这是索引碎片问题。检查索引碎片DBCCSHOWCONTIG(表),得到如下结果:DBCCSHOWCONTIG正在扫描'A'表...表:'A'(884198200);索引ID:1,数据库ID:13已执行TABLE级别的扫描。-扫描页数......................
系统 2019-08-12 01:53:40 2081
SETQUOTED_IDENTIFIERONGOSETANSI_NULLSONGOALTERprocstp_ExportTable@sqlstrnvarchar(4000),--查询语句,如果查询语句中使用了orderby,请加上top100percent,注意,如果导出表/视图,用上面的存储过程@orderstrnvarchar(255),--OrderbyField@pathnvarchar(1000),--文件存放目录@fnamenvarchar(2
系统 2019-08-29 22:22:50 2080