-
sp_executesql使用复杂的Unicode表达式错误的解决方法
Msg102,Level15,State1,Line3Incorrectsyntaxnear'+'.当你尝试执行下面这段代码时,会得到如上这个错误提示。复制代码代码如下:DECLARE@MyNameNVARCHAR(100)DECLARE@FieldNameSYSNAME=N'Name'EXECUTEsp_executesqlN'SELECTTOP1@OutputName=['+@FieldName+']FROM[dbo].[Member]',N'@OutputNameNVARCHAR(100)OUTPUT',@MyNameOUTPUT;SELECT@MyName问题出于不允许使用更复杂的Unicode表达式(例如使用+运算符连接两个字符串)...
数据库操作教程 2022-09-23 17:28:34 -
SQLServerExecpt和notin性能区别
主要讲except和notin的性能上的区别。复制代码代码如下:CREATETABLEtb1(IDint)CREATETABLEtb2(IDint)BEGINTRANDECLARE@iINT=500WHILE@i>0beginINSERTINTOdbo.tb1VALUES(@i--v-int)SET@i=@i-1endCOMMIT我测试的时候tb1是1000,tb2是500复制代码代码如下:DBCCFREESYSTEMCACHE('ALL','default');SETSTATISTICSIOONSETSTATISTICSTIMEonSELECT*FROMtb1EXCEPTSELECT*FROMtb2;SELECT*FROMtb1WHEREidNOTIN(SELECTidFROMtb2);--得不到任何值SETSTATISTICSIOOFFSETSTATISTICSTIMEOFF执行计划:复制代码代码如下:SELECT*FROMtb1EXCEPTSELECT*FROMtb2;|--MergeJoin(RightAntiSemiJoin,MERGE:([master1].[dbo]...
数据库操作教程 2022-09-23 17:26:30 -
sqlserver的updatefrom语句的深究
一般来说update一个表,使用where语句即可:复制代码代码如下:UPDATETtestSET statusInd='ACTIVE' WHERE id=123注意:update语句后面的table名称,是不可以启用别名的。那么此时的id字段,就是来自Ttest表的(无可厚非)但是,如果update,还有额外的jointable条件约束,语句如下:复制代码代码如下:UPDATETtestSET statusInd='ACTIVE'FROM TparentparentWHERE Ttest.id=123ANDTtest.parentId=parent.idANDparent.statusInd='ACTIVE'注意:update后面的Ttest不能使用别名那么定位到,要修改的Ttest记录,就必须这样写:Ttest.id=123如果直接写id=123,会分不清是Ttest表还是Tparent表的 i...
数据库操作教程 2022-09-23 17:26:09 -
SqlServer2012中First_Value函数简单分析
First_Value返回结果集中某列第一条数据的值,跟TOP1效果一样,比较简单的一个函数先贴测试用代码DECLARE@TestDataTABLE(IDINTIDENTITY(1,1),DepartmentVARCHAR(20),LastNameVARCHAR(20),RateFLOAT)INSERTINTO@TestData(Department,LastName,Rate)SELECT'DocumentControl','Arifin',17.7885UNIONALLSELECT'DocumentControl','Norred',16...
数据库操作教程 2022-09-23 17:25:59 -
SQL事务用法begintran,committran和rollbacktran的用法
具体用法如下:复制代码代码如下:--=============================================--Author:cynimoon--Createdate:2009-10-09--Description:示例存储过程--=============================================--EXECTEST_PROC'文综','包括历史,地理,政治','政治','文综的一门'CREATEPROCEDURE[dbo].[TEST_PROC]@A_NameNVARCHAR(20),--A表姓名@A_RemarkNVARCHAR(4000),--A表备注@B_NameNVARCHAR(20),--B表姓名@B_RemarkNVARCHAR(4000)--B表备注ASBEGINTRYBEGINTRAN--在A表中插入数据INSERTINTO[dbo].[A]([A_Name],[A_Remark])VALUES(@A_Name,@A_Remark)--在B表中插入数据INSERTINTO[dbo].[B]([A_ID],[B_Name],[B...
数据库操作教程 2022-09-23 17:25:24 -
深入SQLSERVER合并相关操作Union,Except,Intersect的详解
对于结果集有几个处理,值得讲解一下1.并集(union,Unionall)这个很简单,是把两个结果集水平合并起来。例如SELECT*FROMAUNIONSELECT*FROMB【注意】union会删除重复值,也就是说A和B中重复的行,最终只会出现一次,而unionall则会保留重复行...
数据库操作教程 2022-09-23 17:25:01 -
SQLServer全文检索(full-text)语法
sqlserver全文检索有两种搜索方式,一种是contains,另一种是freetext。前者是包含,类似于like'%关键词%',后者则是将一段文字分词以后对每个词进行搜索...
数据库操作教程 2022-09-23 17:24:38 -
探讨SQLcomputeby的使用分析
GROUPBY子句有个缺点,就是返回的结果集中只有合计数据,而没有原始的详细记录。如果想在SQLSERVER中完成这项工作,可以使用COMPUTEBY子句...
数据库操作教程 2022-09-23 17:24:24 -
深入SQLCursor基本用法的详细介绍
由于这个游标执行一下就相当于SELECT一下其效率不敢恭维也没做深入研究。复制代码代码如下: table1结构如下 id int name varchar(50) declare@idint declare@namevarchar(50) declarecursor1cursorfor --定义游标cursor1 select*fromtable1 --使用游标的对象(跟据需要填入select文) opencursor1 ...
数据库操作教程 2022-09-23 17:21:32 -
SQLServer:探讨EXEC与sp_executesql的区别详解
摘要1,EXEC的使用2,sp_executesql的使用MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有。还有一个最大的好处就是利用sp_executesql,能够重用执行计划,这就大大提供了执行性能(对于这个我在后面的例子中会详加说明),还可以编写更安全的代码...
数据库操作教程 2022-09-23 17:21:08 -
图解SSIS批量导入Excel文件的实现方法
将一个目录下(可以包括子目录)结构一样的excel文件批量导入sql2005,可以用ssis来定制任务.下面用大量图片完全说明整个过程.1、建立测试excel文件,假设有abcd四个字段,保存在f:/excel目录下 并复制很多个一样的文件2、打开MicrosoftVisualStudio2005或者随sql2005安装的SQLServerBusinessIntelligenceDevelopmentStudio,新建一个商业智能项目。3、工具箱拖一个Foreach循环容器4、编辑容器,设定遍历目录和其他参数5、新建一个映射变量,用来存储遍历当中的文件路径6、怎么存储不用你关心,你只要指定一个变量名就ok了7、确定后,容器生成完毕,接着拖一个数据流任务到容器中8、切换到数据流tab页,拖一个excel源9、编辑excel源,选择一个刚刚的任意excel10、选择一个sheet11、拖一个oledb目标到数据流中12、按住excel源的绿色箭头,拖动到oledb目标上13、编辑oledb目标,选择一个sqlserver数据表,这个表必须是已经存在的,这里我们建立一个ssiste...
数据库操作教程 2022-09-23 17:19:31 -
关于重新组织和重新生成索引sp_RefreshIndex的介绍
开始:--------------------------------------------------------------------------------在上周,客户反映一个系统问题,当处理大量数据的时候,出现网络超时。后来,我们跟踪测试,发现是由于索引碎片多而引起的网络超时...
数据库操作教程 2022-09-23 17:18:49