摘要: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 ...
阅读全文
摘要: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
阅读全文
摘要:定义局部变量时,字符串不能超过8000的方法
------------------------------------------------------------------------------------------------------------------------
思路:将字符串分解到多个变量进行存储,根据一定的规则将生成的字符串分段存入临时表。分配到各变量中去
------------------------------------------------------------------------------------------------------------------------
--/*-- 方法1. 多个变量处理
--定义变量,估计需要多少个变量才能保存完所有数据
declare @sql0 varchar(8000),@sql1 varchar(8000)
--,@sqln varchar(8000)
--生成数据处理临时表
select id=i
阅读全文
摘要:A.使用带有简单 CASE 函数的 SELECT 语句
B.使用带有简单 CASE 函数和 CASE 搜索函数的 SELECT 语句
阅读全文
摘要:1.微软的“Web Data Administrator”MS SQL 管理器_WEB方式管理数据库
该程序属于.NET开源程序
2.TableEditoR,ASP编写的,在功能和考虑上要比微软Web Data Administrator那个完整多了
阅读全文
摘要:动态sql语句基本语法
1 :普通SQL语句可以用Exec执行
2:字段名,表名,数据库名之类作为变量时,必须用动态SQL
3. 输出参数
阅读全文
摘要:1.合理使用索引
2.避免或简化排序
3.避免对大型表进行全表顺序扫描
4.避免使用相关的子查询
5.避免使用通配符匹配
6 避免在where子句使用数据转换和串操作等函数操作
7.避免在经常被更新的列建立索引,会严重影响性能。因为每次更新操作,所有的索引都必须做相应的调整。另外,所有的分页操作都被记录在日志中,这也会增加I/O操作
8.避免在经常更新的列上建立聚集索引。因为这会引起整行的移动。
9.尽量在where 子句中少用OR和IN。可以考虑将其使用Union分成几个子查询。
10.避免在where子句中使用NOT、、或 != 运算符。因为这会引起全表扫描。
阅读全文
摘要: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) +'...
阅读全文