曾经爱晚人








永远自由的心

随笔分类 -  SQL

Sql Server
判断是否存在在父结果集中有而在子结果集中没有的记录的最佳方法
摘要:CSDN上有一个帖子:求:判断一个表的数据不在另一个表中最优秀方法?(高手请进)有人说用left join效率最好其实应该是EXISTS 的效率最高如:1.SELECT a.hdr_key FROM hdr_tbl a WHERE NOT EXISTS (SELECT * FROM dtl_tbl b WHERE a.hdr_key = b.hdr_key) 2.SELECT a.hdr_key ... 阅读全文

posted @ 2006-11-01 16:36 e旋风 阅读(716) 评论(0) 推荐(0) 编辑

动态执行Sql语句与临时表的问题(对象名无效)
摘要:exec('selectIDENTITY(int,1,1) as ID,fnum,into #yuecu from store_store where '+@Parameter) select XX,XX1,XX2 from #yuecu . 这样创建一个临时表以后我再想从临时表中取数据提示对象名#yuecu 无效,晕,如果我不是使用exec()执行sql语句的话就没有任何问题,WHY? 临时表有作用域的,上面的临时表只在EXEC內部有效。 解决办法: 改用全局临时表 exec('selectIDENTITY(int,1,1) as ID,fnum,into ##yuecu from store_store where '+@Parameter) select * from ##yuecu 阅读全文

posted @ 2006-10-18 15:39 e旋风 阅读(5376) 评论(0) 推荐(0) 编辑

定义局部变量时,字符串不能超过8000的方法
摘要:定义局部变量时,字符串不能超过8000的方法 ------------------------------------------------------------------------------------------------------------------------ 思路:将字符串分解到多个变量进行存储,根据一定的规则将生成的字符串分段存入临时表。分配到各变量中去 ------------------------------------------------------------------------------------------------------------------------ --/*-- 方法1. 多个变量处理 --定义变量,估计需要多少个变量才能保存完所有数据 declare @sql0 varchar(8000),@sql1 varchar(8000) --,@sqln varchar(8000) --生成数据处理临时表 select id=i 阅读全文

posted @ 2006-10-12 00:27 e旋风 阅读(1408) 评论(0) 推荐(0) 编辑

注意Transact-SQL中Case函数的两种用法导致不同的结果集
摘要:A.使用带有简单 CASE 函数的 SELECT 语句 B.使用带有简单 CASE 函数和 CASE 搜索函数的 SELECT 语句 阅读全文

posted @ 2006-09-22 16:23 e旋风 阅读(1341) 评论(0) 推荐(0) 编辑

微软的“Web Data Administrator”MS SQL 管理器_WEB方式管理数据库
摘要:1.微软的“Web Data Administrator”MS SQL 管理器_WEB方式管理数据库 该程序属于.NET开源程序 2.TableEditoR,ASP编写的,在功能和考虑上要比微软Web Data Administrator那个完整多了 阅读全文

posted @ 2006-06-28 21:12 e旋风 阅读(2778) 评论(1) 推荐(1) 编辑

动态sql语句基本语法
摘要:动态sql语句基本语法 1 :普通SQL语句可以用Exec执行 2:字段名,表名,数据库名之类作为变量时,必须用动态SQL 3. 输出参数 阅读全文

posted @ 2006-04-12 01:28 e旋风 阅读(1534) 评论(0) 推荐(0) 编辑

数据库查询性能优化(合理使用索引|避免或简化排序|避免对大型表进行全表顺序扫描|避免使用相关的子查询|避免使用通配符匹配 )
摘要:1.合理使用索引 2.避免或简化排序 3.避免对大型表进行全表顺序扫描 4.避免使用相关的子查询 5.避免使用通配符匹配 6 避免在where子句使用数据转换和串操作等函数操作 7.避免在经常被更新的列建立索引,会严重影响性能。因为每次更新操作,所有的索引都必须做相应的调整。另外,所有的分页操作都被记录在日志中,这也会增加I/O操作 8.避免在经常更新的列上建立聚集索引。因为这会引起整行的移动。 9.尽量在where 子句中少用OR和IN。可以考虑将其使用Union分成几个子查询。 10.避免在where子句中使用NOT、、或 != 运算符。因为这会引起全表扫描。 阅读全文

posted @ 2005-11-15 14:55 e旋风 阅读(6166) 评论(2) 推荐(0) 编辑

[转]使用SQL语句来进行分页处理
摘要:declare @pagesize int --每页显示的记录数declare @Pages int --要显示的页数set @pagesize=5set @pages=2declare @Sql nvarchar(200)set @sql='select top ' +str(@pagesize)+' * from(select top '+str( @pagesize*@pages) +'... 阅读全文

posted @ 2005-09-23 00:50 e旋风 阅读(624) 评论(0) 推荐(0) 编辑

导航