SQL存储过程参数默认值
MS SQL 存储过程参数默认值例子:create procedure pro_Name( @cNo varchar(8), @cName varchar(20)= '%')as begin SQL 语句集……end;goexec pro_name '10002' ,'%' 或exec pro_name '10002'都可以 ,不会报错。[@more@]
简单统计SQL Server用户数据表大小
在SQL Server,简单的组合sp_spaceused和sp_MSforeachtable这两个存储过程,可以方便的统计出用户数据表的大小,包括记录总数和空间占用情况,非常实用,在SqlServer2K和SqlServer2005中都测试通过。[@more@]/**//* 1. exec sp_spaceused '表名' (SQL统计数据,大量事务操作后可能不准) 2. exec sp_spaceused '表名', true (更新表的空间大小,准确的表空大小,但可能会花些统计时间) 3. exec sp_spaceused (数据库大小查询) 4. exec sp_MSforeachtable "exec sp_spaceused '?'"
玻璃規格中提取玻璃厚度
玻璃規格中提取玻璃厚度 select C.id,c.mc, substring(M.glassT,CharIndex('*',M.GLassT,5)+1,CharIndex('t',M.GLassT)-CharIndex('*',M.GLassT,5) ) as GL , M.glassT from t_makep m, t_Combo C, t_make_inf A where c.id=m.MNAME and c.app_id='t_makep' and c.lb='GZMS' AND A.ENG_NO=M.ENG_NO and A.MAKE_no='D1B2FE343' 因,玻璃規格輸入規範性約束不強,有些提取不到有效值. 例如:(1) 14"*16"*1.1tSP (2)12.6"*14"*0.55t CharIndex('*', Str_source,第N個字符開始); 問題點:CHARINDEX(
MSSQL 查询重复记录
---查询重複資料 SELECT MAKE_NO,FLOWNO,EMPLOYEEID, COUNT(EMPLOYEEID) FROM T_BADnESS GROUP BY MAKE_NO,FLOWNO ,EMPLOYEEIDHAVING COUNT(EMPLOYEEID) >=2[@more@]
订单材料统计表_季度
if exists (select 1 from sysobjects where name ='pro_Bom_AllSum' and type = 'p' )begin[@more@]drop procedure pro_bom_Allsum/* 说明:订单材料统计表,两订单查询范围,一个小范围,一个大范围注意:小范围订单一定要在大范围内,否则计算正确 ,如 小范围 A0904-012到A0904-023 ,大范围则 A0904-001到A0904-030产生表结构:物料编号,物料名称,小范围用量,大范围用量,单位格式: exec pro_bom_AllSum 小范围开始订单号,小范围结束订单号 ,大范围开始订单号,大范围结束订单号 Author:SamBuild Date: 2009-04-16Update date:
服务器修改密码SQL SERVER不能启动
windows XP 安装SQL SERVER 2000 后,修改WINDOWS ADMINISTRATOR(或用户)密码后,SQL SERVER 2000 不能登陆。解决方法:控制面板--》管理工具--》服务--》右击“MSSQLSERVER”--》属性--》登陆--》选择“本地系统账户”[@more@]
订单复制样品BOM 必须优化
以下必须优化它太慢了。Select count ( a.style_no ) From style_stru_samplelist a , mat_material b Where a.matno =b.matno and b.jgflag ='1' and a.splno ='090207094' and a.style_no ='AA70087-29' and convert ( varchar ( 10 ) , flowno ) + a.matno not in ( select convert ( varchar ( 10 ) , flowno ) + matno from style_stru_samplelist_jg ) READS=212477,CPU=2188,DURATION=80970订单复制样品BOM时其中一个语句。[@more@]
Oracle,Mysql,ms SQL Server 限制輸出行
ORACLE返回9行:select * from po.po_headers_all where rownum <=9; MYSQL返回9行:select * from po.po_headers_all LIMIT 9; SQL SERVER 返回9行:select TOP 9 * from po.po_headers_all 區別在加?煮w部分。[@more@]
MSSQL 社会保险
MSSQL 2K 下存储过程,功能:社会保险名单USE XXX-TSKYGO执行命令格式:sp_socialInsurance 'YYYYMM' [@more@]sp_socialInsurance '200905'--drop procedure sp_socialInsurance create procedure sp_socialInsurance @yearMonth varchar(6) /* 格式化:YYYYMM */with encryption /*加密存储过程*/as begin if len(@yearMonth)!=6 BEGIN raisError('日期的格式不对',16,-1) return END select a.name,case b.sex when '0' then '女' else '男' end sex , b.idcardNo as 身份证号, 用工性质='临时工' ,职工类别='在职', case when faddRes
MSSQL内部存储过程(一)
EXEC sp_helpdbfixedrole --返回固定数据库角色的列表。EXEC sp_helprolemember --返回有关当前数据库中某个角色的成员的信息。[@more@]EXEC sp_helpgroup --报告有关当前数据库中一个角色或全部角色的信息。EXEC sp_helprole --显示当前数据库中的所有角色。EXEC sp_helpsrvrolemember --返回有关 Microsoft SQL Server 固定服务器角色成员的信息。EXEC sp_helprotect--返回一个报表,报表中包含当前数据库中某对象的用户权限或语句权限的信息 select * from sysusers where issqlrole=1EXEC sp_helpgroup --报告有关当前数据库中一个角色
ERP解密算法
用户密码有些用户要求系统加密 ,一定程度上保护系统用户,避免轻易地被盗用,以下是用MSSQL 2000 CODE 写的用户密码解密函数。应用开发工具与MSSQL 有所不同,虽然算法相同 。不能完全得到与应用程序开发工具产生结果相一致。例如:应用程序开发工具可以将一个汉字分割为两部分(两个字节),与MSSQL只能是一部分。[@more@]alter function fn_creak( @userID varchar(20) )returns varchar(40)asbegin declare @pwd varchar(30) /*加密文件内容*/ declare @str varchar(30) /*接收原密码字符串*/ declare @i int declare @ii
SQL游标
游标建议不使用,当数据量大了,它使系统变慢。原因:游标处理时,一条一条地进行处理。[@more@]
影响索引的因素
影响索引的因素(MSSQL 2000):1.该字段是否为查询关键词。2.该字段是为连接操作字段。3.该字段的值域中值的个数。4.该字段的值域中各个值的概率分布。5.该字段被更新的频率。6.索引的维护代价。7.对数据库的插入、删除操作的频率。[@more@]
MSSQL 分析器ORACLE数据库资料
--声明查询ORACLE数据库资料 : select * from openquery(ln_Oracle,'') ;例如:[@more@] select * from openquery(ln_Oracle,' SELECT SYSDATE FROM DUAL; ') ; 查询 ORACLE数据库系统日期时间。
MSSQL2K优化--ISNULL函数
系统越来越慢了,跟踪发现在查询语句使用下面的条件,where ISNULL(colName,'0')='0' ,此条件使用频率非常高。从此条件可知此字段的默认值是“0”。开发数据表时可设置为默认值为“0”, CREATE TABLE TABLENAME (……,COLNAME CHAR(2)DEFAULT ‘0’,…… )。减少了函数运算时间 。在一些优化方法中提到,WHERE 后面尽量不使用函数。可以优化为 WHERE COLNAME='0' .提高系统速度。[@more@]
反查订单号BOM物料预用量。(汇总明细 )
/*说明:反查订单号BOM物料预用量。(汇总)格式 :exec pro_BOMFind 开始订单号,结束订单号,物料编号Author:SamBuilde Date:2009-04-16Update Date:*/ [@more@]if exists (select name from sysobjects where name ='pro_BOMfind' and type ='P' )begindrop procedure pro_bomFind endgocreate PROCEDURE pro_BOMFind ( @begin_Odr_NO varchar(20)='%', --开始订单号 @end_odr_no varchar(20)='%', --结束订单号 @matNo varchar(30)='%' -- 物料编号 )asbegin if exists (select 1 from sysobjects where name='tmp_bomFind' and type='u
复制预用量
--UQTY:中码用量,YQTY:预用量; CountWay:方法 , YcountWay:预用量方法,/*复制中码用量到预用量(型号内复制)*/ declare @style_no varchar(20) set @style_no = 'AA70038-18'[@more@]USE GKSERP_TESTGO select top 99 * from style_stru where style_no='AA70038-18'--UQTY:中码用量,YQTY:预用量; CountWay:方法 , YcountWay:预用量方法,/*复制中码用量到预用量(型号内复制)*/ declare @style_no varchar(20) set @style_no = 'AA70038-18' update style_stru set YQTY=UQTY,YCOUNTWAY=COUNTWAY,Yulmodifydt=getdate()
MSSQL将秒数转换为小时
在MSSQL SERVER 2000 中没有找到 系统函数将秒数转换成为小时 的功能函数 。 在PHP中 有此函数功能 。SECOND_TO_TIME() 如果没有记错的话。自己写一个吧。 在 CODE 如下:[@more@] drop function to_time create function to_time( @seconds bigint )returns varchar(12)as begin-- declare @seconds bigint-- set @seconds=3600 declare @hour int decLARE @Minutes int declare @second int declare @mod int if len(@seconds)>0 begin set @hour = @seconds/3600 set @minutes = (@seconds%3600)/60
型号资料建立索引
型号资料建立索引。/*建立 日期*/[@more@]--型号资料if exists (select 1 from sysIndexes where id=object_id('style') and name ='Ix_style' )begin drop index style.ix_styleendgocreate index ix_Style on Style(style_no,material,clr_ID)goif exists ( select 1 from sysIndexes where id=object_id('odr_detail_shoe') and name= 'IX_odr_detail_shoe')begin drop index odr_detail_shoe.ix_odr_detail_shoeendgocreate index ix_odr_detail_shoe on odr_detail_shoe(SplShoeNo DESC ,odr_no DESC,Clr_id,Material)GO
在分組查循中with{cube|rollup}的區別是什么
在分組查循中with{cube|rollup}的區別是什么?如:use panguselect firm_id,p_id,sum(o_price_quantity)as sum_values[@more@]from ordersgroup by firm_id,p_idwith cube與use panguselect firm_id,p_id,sum(o_price_quantity)as sum_valuesfrom ordersgroup by firm_id,p_idwith rollup的區別是什么?CUBE 和 ROLLUP 之间的区别在于: CUBE 生成的结果集显示了所选列中值的所有组合的聚合。ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。 例如,简单表 Inventory 中包含:Item Color Quantity -------------------- ---------