-
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错误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 -
SQL中exists的使用方法
有一个查询如下:复制代码代码如下:SELECTc.CustomerId,CompanyNameFROMCustomerscWHEREEXISTS(SELECTOrderIDFROMOrdersoWHEREo.CustomerID=cu.CustomerID)这里面的EXISTS是如何运作呢?子查询返回的是OrderId字段,可是外面的查询要找的是CustomerID和CompanyName字段,这两个字段肯定不在OrderID里面啊,这是如何匹配的呢?EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。EXISTS指定一个子查询,检测行的存在...
数据库操作教程 2022-09-23 20:34:48 -
sqlserverreplace函数批量替换数据库中指定字段内指定字符串参考方法
语法REPLACE('string_expression1','string_expression2','string_expression3')参数说明'string_expression1'待搜索的字符串表达式。string_expression1可以是字符数据或二进制数据...
数据库操作教程 2022-09-23 20:33:52 -
卸载VS2011DeveloperPreview后SqlServer2008R2建立数据库关系图报“找不到指定的模块”错误的解决方法
可怜我的C盘本来只有8.XG,所以不得不卸载掉它。卸载掉本身没啥问题,只是昨晚突然发现SqlServer2008R2ManagementStudio突然不能新建数据库关系图了,一建立就会报“找不到指定的模块(MSVisualDatabaseTools)”的错误:为了这个错误我甚至认真评估了重新配置数据库的可能性...
数据库操作教程 2022-09-23 20:31:51 -
MSSQL转MYSQL,gb2312转utf-8无乱码解决方法
使用软件:MySQLMigrationTool提示数据过大,无法导入。修改my.cnf文件的max_allowed_packet=100M以上...
数据库操作教程 2022-09-23 20:30:19 -
distinct多列问题结合groupby的解决方法
表table1idRegNamePostionSNPersonSN1山东齐鲁制药22322山东齐鲁制药22423北京城建公司22524科技公司2252我想获得结果是idRegNamePostionSNPersonSN1山东齐鲁制药22323北京城建公司22524科技公司2252selectdistinctRegName,PostionSN...
数据库操作教程 2022-09-23 20:28:42 -
Sqlservertimestamp数据类使用介绍
在SQLServer中联机丛书是这样说的:SQLServertimestamp数据类型与时间和日期无关。SQLServertimestamp是二进制数字,它表明数据库中数据修改发生的相对顺序...
数据库操作教程 2022-09-23 20:28:11 -
使用sp_xml_preparedocument处理XML文档的方法
有时会在存储过程中处理一些XML格式的数据,所以会用到sp_xml_preparedocument,他可以将XML数据进行读取,然后使用MSXML分析器(Msxmlsql.dll)对其进行分析。我们就可以很容易的在存储过程中得到XML中我们想要的数据...
数据库操作教程 2022-09-23 20:26:00 -
关于SQLServerErrorLog错误日志说明
默认情况下,SQLServer保存7个ErrorLog文件,名为:ErrorLogErrorLog.1ErrorLog.2ErrorLog.3ErrorLog.4ErrorLog.5ErrorLog.6在APACSOS版本6.1中,ErrorLog文件保存在c:ProgramFilesMicrosoftSQLServerMSSQL$WINCCLOG文件夹中。在APACSOS版本7.0中,ErrorLog文件保存在c:ProgramFilesMicrosoftSQLServerMSSQL.1MSSQLLOG文件夹中...
数据库操作教程 2022-09-23 20:24:38 -
sqlserver中distinct的用法(不重复的记录)
下面先来看看例子:table表字段1 字段2 id name 1 a 2 b 3 c 4 c 5 &n...
数据库操作教程 2022-09-23 20:23:24