-
SQLServer参数化查询经验分享
什么是参数化查询? 一个简单理解参数化查询的方式是把它看做只是一个T-SQL查询,它接受控制这个查询返回什么的参数。通过使用不同的参数,一个参数化查询返回不同的结果...
数据库操作教程 2022-09-23 20:36:52 -
SQL中WHERE变量ISNULL条件导致全表扫描问题的解决方法
复制代码代码如下:SET@SQL='SELECT*FROMCommentwith(nolock)WHERE1=1 And(@ProjectIdsIsNullorProjectId=@ProjectIds) And(@ScoresisnullorScore=@Scores)'印象中记得,以前在做Oracle开发时,这种写法是会导致全表扫描的,用不上索引,不知道SqlServer里是否也是一样呢,于是做一个简单的测试1、建立测试用的表结构和索引:复制代码代码如下:CREATETABLEaaa(idintIDENTITY,NAMEVARCHAR(12),ageINT)goCREATEINDEXidx_ageONaaa(age)GO2、插入1万条测试数据:复制代码代码如下:DECLARE@iINT;SET@i=0;WHILE@i<10000BEGIN INSERTINTOaaa(name,age)VALUES(CAST(@iASVARCHAR),@i) SET@i=@i+1;ENDGO3、先开启执行计...
数据库操作教程 2022-09-23 20:36:43 -
SQLServer使用ADSI执行分布式查询ActiveDorectory对象
Step1:CreatingaLinkedServer.EXECsp_addlinkedserver'ADSI','ActiveDirectoryServices2.5','ADSDSOObject','adsdatasource'Step2:CreatingaSQLServerAuthenticatedLoginEXECsp_addlinkedsrvlogin@rmtsrvname=N'ADSI',@locallogin=NULL,@useself=N'False',@rmtuser=N'domainAccount',@rmtpassword=N'Password'对于SQLServer授权登录,可以使用sp_addlinkedsrvlogin系统存储过程配置用于连接到目录服务的适当的登录/密码.参考这里:http://blogs.msdn.com/euanga/archive/2007/03/22/faq-how-do-i-query-active-directory-from-sql-server.aspx如果SQLServer使用Windows授权登录,只需自映射就足以通过使用...
数据库操作教程 2022-09-23 20:36:34 -
sqlserver创建复合主键的2种方法
创建复合主键:方法一:创建表之后,altertabletable_nameaddprimarykey(字段1...
数据库操作教程 2022-09-23 20:36:22 -
利用脚本自动安装SQLServer的实现步骤分析
每当这种情况发生的时候,我总会心里默念道:杯具啊,这辈子也装不完了。因为SQLServer的安装还是比较复杂的,要先安装.Net、WindowsInstaller,在正式安装的过程中还要交互的填写各种参数,当然这个还不包括拷贝3GB多的安装文件的时间...
数据库操作教程 2022-09-23 20:36:20 -
sqlserverUnion和SQLUnionAll使用方法
SQLUNION操作符UNION操作符用于合并两个或多个SELECT语句的结果集。请注意,UNION内部的SELECT语句必须拥有相同数量的列...
数据库操作教程 2022-09-23 20:36:16 -
sqlserver错误602,未能在sysindexes中找到数据库的解决办法
解决办法:直接附加或附加应该是不行的,用脚本+导数据肯定没有问题。Sql2005转到Sql2000的步骤步骤1.生成for2000版本的数据库脚本Sql2005的mangerstudio--打开"对象资源管理器"(没有的话按F8),连接到你的实例--右键要转到2000的库--任务--生成脚本--在"脚本向导"的"选择数据库"中,确定选择的是要转到2000的库--勾选"为所选数据库中的所有对象编写脚本"--在接下来的"选择脚本选项"中,找到"为服务器版本编写脚本"项,选择"SQLServer2000"--其他选项根据需要设置--最后把脚本保存到一个.sql脚本文件2.在2000中创建目标数据库在查询分析器(或2005的mangerstudio在打开脚本文件),连接到SQLServer2000,执行上面生成的脚本.以创建一个新的数据库3.将数据从2005导到20002005的mangerstudio--打开"对象资源管理器"(没有的话按F8),连接到你的实例--右键要转到2000的库--任务--导出数据--在"SQLServer导入和导出向导"的"选择数据源"步骤中,确定选择的是要导出的数...
数据库操作教程 2022-09-23 20:35:58 -
sqlserver下Kill所有连接到某一数据库的连接
复制代码代码如下:USEmasterDECLARE@spidintDECLARECURCURSORFORSELECTspidFROMsysprocessesWHEREdbid=5FETCHNEXTFROMCURINTO@spidWHILE@@FETCH_STATUS=0BEGIN--EXEC('KILL'+@spid)FETCHNEXTFROMCURINTO@spidENDCLOSECURDEALLOCATECUR...
数据库操作教程 2022-09-23 20:35:55 -
小议sqlserver数据库主键选取策略
因为主键可以唯一标识某一行记录,所以可以确保执行数据更新、删除的时候不会出现张冠李戴的错误。当然,其它字段可以辅助我们在执行这些操作时消除共享冲突,不过就不在这里讨论了...
数据库操作教程 2022-09-23 20:35:45 -
ASP.NET下向SQLServer2008导入文件实例操作方法
ASP.NET向SQLServer导入文件主要用到FileUpload控件的FileBytes属性。该属性从FileUpload控件所指定的文件返回一个字节数组...
数据库操作教程 2022-09-23 20:35:22 -
SQLServer中的死锁说明
两个进程发生死锁的典型例子是:进程T1中获取锁A,申请锁B;进程T2中获取锁B,申请锁A,我们下面动手来演示一下这种情况:1.创建一个Database,名为InvDB。2.执行下面脚本创建person表并填充两条数据:3.在SQLServerManagementStudio的两个窗口中同时执行下面的查询:这段代码在默认的READCOMMITTED隔离级别下运行,两个进程分别在获取一个排它锁的情况下,申请对方的共享锁从而造成死锁...
数据库操作教程 2022-09-23 20:35:16 -
将表数据生成Insert脚本比较好用的生成插入语句的SQL脚本
复制代码代码如下:setANSI_NULLSONsetQUOTED_IDENTIFIERONgo--=============================================--Author:华岭--Createdate:2008-10-28--Description:将表数据生成Insert脚本--Demo:execpCreateInsertScript'BexmCodeType','dictypeid=61'--=============================================alterproc[dbo].pCreateInsertScript(@tablenamevarchar(256),@connvarchar(400))asbeginsetnocountondeclare@sqlstrvarchar(4000)declare@sqlstr1varchar(4000)declare@sqlstr2varchar(4000)select@sqlstr='select''insert'+@tablenameselect@sqlstr1=''s...
数据库操作教程 2022-09-23 20:35:00