-
SQLServer本地时间和UTC时间的相互转换实现代码
复制代码代码如下:DECLARE@LocalDateDATETIME,@UTCDateDATETIME,@LocalDate2DATETIMESET@LocalDate=GETDATE()SET@UTCDate=DATEADD(hour,DATEDIFF(hour,GETDATE(),GETUTCDATE()),@LocalDate)SET@LocalDate2=DATEADD(hour,DATEDIFF(hour,GETUTCDATE(),GETDATE()),@UTCDate)SELECT'1.Now'[Now],@LocalDate[DateTime]UNIONSELECT'2...
数据库操作教程 2022-09-23 20:41:19 -
SQLServer中的切割字符串SplitString函数
复制代码代码如下:SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGO/*bykudychen2011-9-28*/CREATEfunction[dbo].[SplitString](@Inputnvarchar(max),--inputstringtobeseparated@Separatornvarchar(max)=',',--astringthatdelimitthesubstringsintheinputstring@RemoveEmptyEntriesbit=1--thereturnvaluedoesnotincludearrayelementsthatcontainanemptystring)returns@TABLEtable([Id]intidentity(1,1),[Value]nvarchar(max))asbegindeclare@Indexint,@Entrynvarchar(max)set@Index=charindex(@Separator,@Input)while(@Index>0)beginset@Entry=ltr...
数据库操作教程 2022-09-23 20:40:07 -
SQL中exists的使用方法
有一个查询如下:复制代码代码如下:SELECTc.CustomerId,CompanyNameFROMCustomerscWHEREEXISTS(SELECTOrderIDFROMOrdersoWHEREo.CustomerID=cu.CustomerID)这里面的EXISTS是如何运作呢?子查询返回的是OrderId字段,可是外面的查询要找的是CustomerID和CompanyName字段,这两个字段肯定不在OrderID里面啊,这是如何匹配的呢?EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。EXISTS指定一个子查询,检测行的存在...
数据库操作教程 2022-09-23 20:34:48 -
MSSQL转MYSQL,gb2312转utf-8无乱码解决方法
使用软件:MySQLMigrationTool提示数据过大,无法导入。修改my.cnf文件的max_allowed_packet=100M以上...
数据库操作教程 2022-09-23 20:30:19 -
使用sp_xml_preparedocument处理XML文档的方法
有时会在存储过程中处理一些XML格式的数据,所以会用到sp_xml_preparedocument,他可以将XML数据进行读取,然后使用MSXML分析器(Msxmlsql.dll)对其进行分析。我们就可以很容易的在存储过程中得到XML中我们想要的数据...
数据库操作教程 2022-09-23 20:26:00 -
SQL中sp_executesql存储过程的使用帮助
摘自SQLserver帮助文档对大家优查询速度有帮助!建议使用sp_executesql而不要使用EXECUTE语句执行字符串。支持参数替换不仅使sp_executesql比EXECUTE更通用,而且还使sp_executesql更有效,因为它生成的执行计划更有可能被SQLServer重新使用...
数据库操作教程 2022-09-23 20:25:44 -
分发服务器系统抛出18483错误,未能连接服务器,因为'distributor_admin'未定义远程登陆
系统抛出18483错误,未能连接服务器,因为'distributor_admin'未定义远程登陆我在做分发服务器,进行快照复制设置的时候在最后出现如下错误:错误18483,未能连接服务器,因为'distributor_admin'未在该服务器上定义远程登录。为什么会这样啊?该如何解决啊??急啊,还请各位指教!解决方法:我刚刚解决这种情况,你在EM中注册服务器的时候,一定要是你SQLSERVER服务器启动的名字!如果是IP地址的注册服务器,就会出现此种情况!另一种的解决方法如下:Tryselect@@servername.Ifdifferentfromtheactualservername,thenusesp_dropserver'oldservername'andafterthatsp_addserver'actualservername','local'followedbyarestartoftheSQLservice.中文意思:在查询分析器中运行select@@servername查看电脑名,如果跟当前电脑名不一样,则需要如下操作...
数据库操作教程 2022-09-23 20:21:58 -
SQLServer中汇总功能的使用GROUPING,ROLLUP和CUBE
第一次看到这样的SQL语句,看不懂,其中用到了下面的不常用的聚集函数:GROUPING用于汇总数据用的运算符:ROLLUPSELECT CASE GROUPING(o.customerid) WHEN 0 THEN o.customerid ELSE '(Total)' END AS AllCustomersSummary, CASE GROUPING(od.orderid) WHEN 0 THEN od.orderid ELSE -1 END AS IndividualCustomerSummary, SUM(od.quantity*od.unitprice) AS price FROM Orders o, [Order Details] od WHERE&...
数据库操作教程 2022-09-23 20:21:35 -
IN&EXISTS与NOTIN&NOTEXISTS的优化原则小结
1.EXISTS的执行流程select*fromt1whereexists(selectnullfromt2wherey=x)可以理解为:复制代码代码如下:forxin(select*fromt1)loopif(exists(selectnullfromt2wherey=x.x)thenOUTPUTTHERECORDendifendloop对于in和exists的性能区别:如果子查询得出的结果集记录较少,主查询中的表较大且又有索引时应该用in,反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用exists。其实我们区分in和exists主要是造成了驱动顺序的改变(这是性能变化的关键),如果是exists,那么以外层表为驱动表,先被访问,如果是IN,那么先执行子查询,所以我们会以驱动表的快速返回为目标,那么就会考虑到索引及结果集的关系了另外IN时不对NULL进行处理,如:select1fromdualwherenullin(0,1,2,null)结果为空...
数据库操作教程 2022-09-23 20:21:01 -
MicrosoftSQLServer的版本区别及选择
对于新接触SQL数据库的人来说,类似这几个问题的有关于SQL版本的问题可以说不少,但又懒得去仔细研究。问题虽然简单,可是影响却不小...
数据库操作教程 2022-09-23 20:17:54 -
sql语句优化之用EXISTS替代IN、用NOTEXISTS替代NOTIN的语句
在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接。在这种情况下, 使用EXISTS(或NOT EXISTS)通常将提高查询的效率...
数据库操作教程 2022-09-23 20:15:10 -
在sp_executesql中使用like字句的方法
declare@LikeSqlnvarchar(32);--定义一个like变量,如果是存储过程...
数据库操作教程 2022-09-23 18:24:02