文章分类 -  SQL存储过程及自定义函数

摘要:/*-1.-获得汉字字符串的首字母 根据大力的贴子改成.将大力的两个函数合并成了一个函数. 可以应用于助记码的查询--转载(最早见于j9988的发表,具体原作者不明)--*/ if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fGetPy]') and xtype in (N'FN', N'IF',... 阅读全文
posted @ 2006-04-29 15:58 李振波 阅读(1918) 评论(0) 推荐(0)
摘要:--创建province表 create table province (id varchar(5) not null,name varchar(10),lastid varchar(5))go --插入数据insert into province values('100','河北','')insert into province values('200','北京','')insert into ... 阅读全文
posted @ 2006-04-29 15:49 李振波 阅读(292) 评论(0) 推荐(0)
摘要:供电局6月1号到8号供点电量分别为8.14,8.25,8.33,8.36,8.47,8.77,8.23,8.45以次数据构成的数据库,要求查询累积供电量,比如2号的累积供电量为1号和2号供电量的加和;4号供电量是1号,2号,3号,4号供电量的加和。依次类推,要求用SQL语句将8天的累积供电量查询出来 1.建表: USE [example]GO/**//****** 对象: Table [db... 阅读全文
posted @ 2006-04-29 15:48 李振波 阅读(1222) 评论(1) 推荐(0)
摘要:Itzik Ben-GanSolid Quality Learning 适用于:Transact-SQLMicrosoft SQL Server 2005 Beta 2 摘要:该白皮书介绍了 Microsoft SQL Server 2005 Beta 2 中的 Transact-SQL 的几个新的增强功能。这些新功能可以改善您的表达能力、查询性能以及错误管理功能。本文重点介绍几个概念新颖且互相... 阅读全文
posted @ 2006-04-29 15:46 李振波 阅读(872) 评论(0) 推荐(0)
摘要:数据库原有ID字段,是自增列的,后来把数据全删除后,想让ID自增列从1开始算起 方法1: 1.dbcc checkident('test',reseed,0)2.insert into test values(55) select * from test 显示结果: id msum 1 55 方法2: SET IDENTITY_INSERT 允许将显式值插入表的标识列中... 阅读全文
posted @ 2006-04-29 15:39 李振波 阅读(1878) 评论(2) 推荐(0)
摘要:一、 只复制一个表结构,不复制数据 select top 0 * into [t1] from [t2] 二、 获取数据库中某个对象的创建脚本 1、 先用下面的脚本创建一个函数 if exists(select 1 from sysobjects where id=object_id('fgetscript') and objectproperty(id,'IsInlineFunctio... 阅读全文
posted @ 2006-04-29 15:38 李振波 阅读(752) 评论(5) 推荐(1)
摘要:SQL Server 2005相对于SQL Server 2000改进很大,有些还是非常实用的。 举几个例子来简单说明 这些例子我引用了Northwind库。 1. TOP 表达式 SQL Server 2000的TOP是个固定值,是不是觉得不爽,现在改进了。 --前n名的订单declare @n int set @n = 10 select TOP(@n) * from Orders 2... 阅读全文
posted @ 2006-04-29 15:35 李振波 阅读(308) 评论(0) 推荐(0)
摘要:转自:edobnet在日常开发中,有时候需要扣除节假日,本人实际开发中使用了一套比较好的办法与大家讨论.表结构ER设计如下:其中:节假日表,是存计算好的节假日结果.并且把日期换成"整形日期",建立索引提高判断速度,只要节假日,变成,当晚就可以通过DTS最新计算节假日表,存储过程如下: CREATE Procedure sp_holiday @YEAR intAS --产生节假日... 阅读全文
posted @ 2006-04-24 16:21 李振波 阅读(1038) 评论(0) 推荐(0)
摘要:/**//*说明:1.支持多表查询 2.支持任意排序 3.不支持表别名参考了 evafly920:[分享]千万数量级分页存储过程(效果演示) 地址:http://blog.csdn.net/evafly920/archive/2006/03/03/614813.aspx IF(EXISTS(SELECT * FROM sysobjects WHERE [id]=OBJECT_ID('u... 阅读全文
posted @ 2006-04-21 22:52 李振波 阅读(1602) 评论(2) 推荐(0)
摘要:--处理示例--示例数据create table tb(ID int,Name varchar(10),ParentID int)insert tb select 1,'AAAA' ,0union all select 2,'BBBB' ,0union all select 3,'CCCC' ,0union all select 4,'AAAA-1' ,1union all s... 阅读全文
posted @ 2006-04-21 22:04 李振波 阅读(1111) 评论(0) 推荐(1)
摘要:一、前言:在经过一段时间的存储过程开发之后,写下了一些开发时候的小结和经验与大家共享,希望对大家有益,主要是针对Sybase和SQL Server数据库,但其它数据库应该有一些共性。 二、适合读者对象:数据库开发程序员,数据库的数据量很多,涉及到对SP(存储过程)的优化的项目开发人员,对数据库有浓厚兴趣的人。 三、介绍:在数据库的开发过程中,经常会遇到复杂的业务逻辑和对数据库的操作,这个时候就会... 阅读全文
posted @ 2006-04-21 12:05 李振波 阅读(529) 评论(1) 推荐(0)
摘要:存储过程入门与提高 什么是存储过程呢? 定义: 将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。 讲到这里,可能有人要问:这么说存储过程就是一堆SQL语句而已啊? Microsof... 阅读全文
posted @ 2006-04-21 12:04 李振波 阅读(776) 评论(2) 推荐(0)
摘要:如:Select A from TBL_M选出很多行: A ff dd ss aa ... 阅读全文
posted @ 2006-04-21 12:00 李振波 阅读(757) 评论(0) 推荐(0)
摘要:转自:游荡的灵魂表结构是这样的CalssId 标识id Sid 上级id (就是上级的标识Id)填充数据后是这样 CalssId Sid 1 0 2 1 3 1 4 2 4 2 ... 阅读全文
posted @ 2006-04-21 11:56 李振波 阅读(978) 评论(0) 推荐(0)
摘要:转自:资深菜鸟 昨天应朋友之邀写了一个存储过程.贴在这里,有需要的朋友可以看一下. '模型',故名思义,纯理论性的,根据实际情况改造后可以使用. //如果数据库中存在此对象则删除 if exists(select id from sysobjects where id=object_id('销售记帐')) drop procedure 销售记帐; //创建销售记帐存储过程 cr... 阅读全文
posted @ 2006-04-21 11:44 李振波 阅读(507) 评论(0) 推荐(0)
摘要:转自二十四画生 大多数的单据都需要有个单据号。有的单据号就是顺序编号如:000001,000002……。有的单据号是有一定意义的,如我遇见过的一个需求:单据号共12位,1位帐套号(区分使用单位的),1位单据标识号(表示该单是什么单,如:E表示订货单,X表示销售单),2位年号(05表示2005年),2位月号,2位日号,4位编号(按当天的顺序,最大9999,超过9999的就用9999表示) JE... 阅读全文
posted @ 2006-04-21 11:19 李振波 阅读(683) 评论(0) 推荐(0)
摘要:转自: 杰 在做项目的时候,经常碰到客户需要将某些信息按指定的顺序放在首页,所以写了存储过程.请各位指点.说明:表 Firm , ID 号 F_ID_int, 排列序号 F_Num. 当F_Num 为0 时表示该信息不被指定排序. Create procedure SetOrder@ID int, --商户ID号@Num int --设置排名次数asbegin decl... 阅读全文
posted @ 2006-04-21 11:13 李振波 阅读(152) 评论(0) 推荐(0)
摘要:转自:fosk 通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和 DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。 在使用本文中的例子之前,你必须注... 阅读全文
posted @ 2006-04-21 11:02 李振波 阅读(619) 评论(0) 推荐(0)
摘要:转自:无心之柳.NET最近一直在做Dnn模块的开发,过程中碰到这么一个问题,需要同时插入N条数据,不想在程序里控制,但是SQL Sever又不支持数组参数.所以只能用变通的办法了.利用SQL Server强大的字符串处理传把数组格式化为类似"1,2,3,4,5,6" 然后在存储过程中用SubString配合CharIndex把分割开来详细的存储过程 CREATE PROCEDURE dbo.Pr... 阅读全文
posted @ 2006-04-21 10:55 李振波 阅读(327) 评论(0) 推荐(0)
摘要:转自:fosk 昨天看了无心之柳.NET 的一篇给SQL Server存储过程,传送数组参数的变通办法后,我稍微改了一下,以解决在SQL Server存储过程通过传送数组字符串参数删除多条记录(如多选或全选表单中的多选框所获取的一组数值删除 )。 存储代码如下: CREATE PROCEDURE DeleteNews @ID nvarchar(500) as DECLARE @... 阅读全文
posted @ 2006-04-21 10:52 李振波 阅读(1600) 评论(2) 推荐(0)