-
asp.net使用SqlBulkCopy极速插入数据到SQLServer
按这个来算,我们那个发水票的时间就会由10分钟-->20秒,这可太神奇了。于是乎,下demo,测试,改成自己一般使用的方法测试,NND,还真可以说是极速...
数据库操作教程 2022-09-23 20:24:20 -
SQLServer数据库的数据汇总完全解析(WITHROLLUP)
现有表A,内容如下:编码仓库数量01A601B702A802B9现在想按编码查询出这种格式:01A601B7汇总小计:1302A802B9汇总小计:17问:该如何实现?乍一看,好像很容易,用groupby好像能实现?但仔细研究下去,你又会觉得groupby也是无能为力,总欠缺点什么,无从下手。那么,到底该如何做呢?别急,SQLServer早就帮我们做好了,下面,跟我来...
数据库操作教程 2022-09-23 20:22:56 -
过程需要参数'@statement'为'ntext/nchar/nvarchar'类型
复制代码代码如下:declare@strCountTmpvarchar(100)--记录数 换成:复制代码代码如下:declare@strCountTmpnvarchar(100)--记录数...
数据库操作教程 2022-09-23 20:22:03 -
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 -
REPLICATE以指定的次数重复字符表达式
使用REPLICATE(以指定的次数重复字符表达式)函数REPLICATE函数用于以指定的次数重复字符表达式。语法:REPLICATE(character_expression,integer_expression)参数说明:character_expression:由字符数据组成的字母数字表达式...
数据库操作教程 2022-09-23 20:20:50 -
MMC提示不能打开文件SQLServerEnterpriseManager.MSC的解决方法
“开始”—>“运行”—>键入MMC命令 弹出如下窗口: “文件”—>“添加/删除管理单元(M)”或者直接按Ctrl+M,弹出下面窗口: 单击下面的“添加”按钮,选中“MicrosoftSQL企业管理器”: 单击“添加”按钮,添加成功,直接关闭这个窗口,然后在上面“添加/删除管理单元”的列表中可以看到了企业管理器了,同时点击“确定”按钮,在“控制台1”上出现MicrosoftSQLServers。 最后,选择“文件”—>“另存为”,将添加的控制台存到C:ProgramFilesMicrosoftSQLServer80ToolsBinnSQLServerEnterpriseManager.MSC目录下,直接覆盖原来存在的SQLServerEnterpriseManager.MSC文件...
数据库操作教程 2022-09-23 20:17:58 -
SQLServer优化SQL语句in和notin的替代方案
但是用IN的SQL性能总是比较低的,从SQL执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别:SQL试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询。由此可见用IN的SQL至少多了一个转换的过程...
数据库操作教程 2022-09-23 20:16:38 -
SQL中函数replace的参数1的数据类型ntext无效的解决方法
今天将一个ACC的数据库转换成ms-sql以后发现在使用replace替换语句的时候出现:SQL中函数replace的参数1的数据类型ntext无效。找了半天找到了解决办法:因为ntext需要转化下用如下语句即可解决:复制代码代码如下:UPDATE表SET字段=REPLACE(cast(字段ASvarchar(8000)),'被替换的内容','将要替换成的内容')varchar(8000)是字段类型...
数据库操作教程 2022-09-23 20:15:52 -
sqlSetIDENTITY_INSERT的用法
语法SETIDENTITY_INSERT[database.[owner.]]{table}{ON|OFF}参数database,是指定的表所驻留的数据库名称。owner是表所有者的名称...
数据库操作教程 2022-09-23 20:15:46 -
sql语句中如何将datetime格式的日期转换为yy-mm-dd格式
如果在asp中我们可以用year(date())这样的格式在sql语句中,不知道这样的效率怎么样不过是个方法复制代码代码如下:select substring(convert(char,registdate,120),1,10) as registdate from tbuser...
数据库操作教程 2022-09-23 20:15:19 -
sqlupdate触发器可获得被update的行的信息
复制代码代码如下:createtriggerTgNameontbforupdateasifupdate(recommend)beginupdatetbsetcommenddate=(getdate())fromtbinnerjoininsertedontb.vlistid=Inserted.vlistidendrecommend表示被更新的字段.关键在于Inserted表触发器语句中使用了两种特殊的表:deleted表和inserted表。Deleted表用于存储DELETE和UPDATE语句所影响的行的复本...
数据库操作教程 2022-09-23 20:15:15