SQL Server 2005 创建简单的存储过程--总结分析

最近由于工作需要,简单了解了下SQL Server 2005 数据库创建简单的在存储过程。
一、首先说明如何创建存储过程:
CREATE PROCEDUER my_pro @inputDate varchar ,
//声明输入变量 @Result varchar(255) output
//声明输出变量 AS declare @variable1 varchar(255)
//声明varchar变量 declare @variable2 int
//声明整形变量 BEGIN IF ...(条件) BEGIN ....(执行内容) END ELSE BEGIN ....(执行内容) END END
以上就是创建一个简单的存储过程方法。

二、删除存储过程 DROP PROCEDURE my_pro

三、执行存储过程
(1)执行没有参数的存储过程:EXECUTE my_pro
(2)执行有参数的存储过程:
EXECUTE my_pro '输入变量'
(1)执行有参数且有返回值(即有输出变量)的存储过程:
declare @Result varchar(1024)
//声明输出变量 EXECUTE my_pro '输入变量' @Result output
//让该存储过程输出值保存到@Result中 select @Result as result
//查询结果返回

四、例子下面需要将查询多条记录结果,使用一条返回值进行返回。
例如:有表Test中,其中有两个字段为Test01与Test02,把Test01 > 10000的记录,让查询Test02结果进行合并,合并成一条记录来返回。
则返回结果为:WSXEDCRFVTGB. Test01 Test02 10000 QAZ 10001 WSX 10002 EDC 10003 RFV 10004 TGB 那么,使用存储过程,使用存储过程中的游标,可以进行for循环来进行多条记录的合并。将可以解决这个问题。
具体存储过程如下:
DROP PORCEDURE my_Cursor
//习惯性,创建之前,先看看该存储过程是否存在 CREATE PROCEDURE my_Cursor @id int ,
//声明输入变量
@Result varchar(255) output
//声明输出变量,注意一定要有output关键字,否则默认为输入变量 AS Declare city_cursor cursor for
–声明游标变量 Select [Test01] from Test where Test01 > @id
–其中@id为输入变量 Set @Result = ‘'
–设置变量@Result值 Declare @Field int
–声明临时存放查询到的Test01的变量 Open city_cursor
–打开游标 Fetch next from city_cursor into @Field
–将实际Test01赋给变量,进行循环 While(@@fetch_status=0)
–循环开始 BEGIN If @Result = ‘' BEGIN Select @Result = Test02 from Test where Test01 = @Field END ELSE BEGIN Select @Result = @Result + ‘,' + Test02 from Test where Test01 = @Field END Fetch next from city_cursor into @Field
–循环下一个Test01 END Close city_cursor
–关闭游标 Deallocate city_cursor
–释放游标引用 GO (结束) 以下是执行 Declare @Result varchar(1024) EXECUTE my_pro 10000 ,@Result output
–output关键字一定得写,如果是多个输入参数,则使用“,”号来区分 Select @Result as result –查询结果

(0)

相关推荐

  • sqlserver 批量删除存储过程和批量修改存储过程的语句

    修改: 复制代码 代码如下: declare proccur cursor for select [name] from sysobjects where name like 'Foods_%' declare @procname varchar(100) declare @temp varchar(100) open proccur fetch next from proccur into @procname while(@@FETCH_STATUS = 0) begin set @temp=

  • SQL Server创建链接服务器的存储过程示例分享

    创建链接服务器.链接服务器让用户可以对 OLE DB 数据源进行分布式异类查询.在使用 sp_addlinkedserver 创建链接 服务器后,可对该服务器运行分布式查询.如果链接服务器定义为 SQL Server 实例,则可执行远程存储过程. http://msdn.microsoft.com/zh-cn/library/ms190479(SQL.90).aspx EXECUTE sp_addlinkedserver @server='DB1', @srvproduct='',@provid

  • SQLServer存储过程创建和修改的实现代码

    打开SQL Server 2005的管理工具,选中需要创建存储过程的数据库,找到"可编程性",展开后可以看到"存储过程".右键点击它,选择"新建存储过程",右侧的编辑窗口打开了,里面装着微软自动生成的SQL Server创建存储过程的语句. 将存储过程的名字,参数,操作语句写好后,点击语法分析,没有错误就直接"F5"运行就好了,存储过程创建完毕,以下是一个基本的存储过程的代码: CREATE PROCEDURE Get_Dat

  • sqlserver2008查看表记录或者修改存储过程出现目录名无效错误解决方法

    点工具栏中[显示估计的查询计划],结果提示Documents and Settings\XXX\Local Settings\Temp\1\xxx.tmp文件不能访问.查看发现没有1这个子目录--这是给1号远程连接会话用的临时目录,手工创建子目录1,即可正常查询

  • 在SQL Server 2005中创建CLR存储过程的详细介绍

    在2005之前的版本创建存储过程都是在数据库里面写Transact-SQL语言实现的,不过现在SQL Server 2005支持用其他面向对象的语言编写CLR存储过程了,关于这样做的好处,官方有很多解释了,这里就直接说明实现方法了. 假设服务器里面有个test数据库,数据库有个架构user,还有一个表test1,然后有个sql登陆用户叫test_user,将这个用户设置成VS2005里面数据库连接的登陆用户. 在VS2005中创建一个项目,类别是SQL Server数据库项目,然后往项目里面添加

  • SQL Server 2005 创建简单的存储过程--总结分析

    最近由于工作需要,简单了解了下SQL Server 2005 数据库创建简单的在存储过程.一.首先说明如何创建存储过程: CREATE PROCEDUER my_pro @inputDate varchar ,//声明输入变量 @Result varchar(255) output //声明输出变量 AS declare @variable1 varchar(255)//声明varchar变量 declare @variable2 int //声明整形变量 BEGIN IF ...(条件) BE

  • 配置 SQL Server 2005 以允许远程连接的方法

    例如,在使用 SQLCMD 实用工具连接到 SQL Server 时收到以下错误消息: 复制代码 代码如下: Sqlcmd:错误:Microsoft SQL Native Client:建立到服务器的连接时发生错误.连接到 SQL Server 2005 时,默认设置 SQL Server 不允许远程连接这个事实可能会导致失败. 如果没有将 SQL Server 2005 配置为接受远程连接,则可能会发生此问题.默认情况下,SQL Server 2005 Express Edition 和 SQ

  • SQL Server 2005通用分页存储过程及多表联接应用

    这是不久前写的一个分页存储过程,可应用于SQL Server 2005上面: 复制代码 代码如下: if object_ID('[proc_SelectForPager]') is not null Drop Procedure [proc_SelectForPager] Go Create Proc proc_SelectForPager ( @Sql varchar(max) , @Order varchar(4000) , @CurrentPage int , @PageSize int,

  • 如何在SQL SERVER 2005存储过程中,使用循环语句

    复制代码 代码如下: CREAT PROCEDURE tester   ASBEGIN    SET NOCOUNT ON;    DECLARE @userId varchar(50)    DECLARE @count int    SET @count = 0    SELECT @count = count(*) FROM   UserService_User WHERE Account like '%111%'   WHILE @count > 0    BEGIN        SE

  • 深入sql server 2005 万能分页存储过程的详解

    –建立主表临时表CREATE TABLE #temp(rownumber bigint,orderseqno VARCHAR(36),goodsname VARCHAR(50),companyname VARCHAR(100))–建立子表临 时表CREATE TABLE #detail(orderseqno VARCHAR(36),detailid UNIQUEIDENTIFIER,unitprice DECIMAL(12,2),Qty int)–插入主表数据到主表临时表insert into

  • SQL Server 2005 中使用 Try Catch 处理异常

    TRY...CATCH是Sql Server 2005/2008令人印象深刻的新特性.提高了开发人员异常处理能力.没有理由不尝试一下Try.. Catch功能. * TRY 块 - 包含可能产生异常的代码或脚本 * CATCH 块 - 如果TRY块出现异常,代码处理流将被路由到CATCH块.在这里你可以处理异常,记录日志等. Sql Server中的Try Catch和C#,JAVA等语言的处理方式一脉相承.这种一致性才是最大的创新之处. 一.SQL SERVER 2000中异常处理 CREAT

  • 在WIN7下安装和配置SQL Server 2005 Express Edition(精简版)

    折腾了一下午,终于把SQL Server 2005 Express Edition装好,鉴于出现了各种问题,所以把过程写下来. 首先,下载两个文件: ①SQL Server 2005 Express Edition 下载地址:http://files.jb51.net/file_images/article/201501/2015010313472645.aspx ②SQLServer2005_SSMSEE.msi 下载地址:http://files.jb51.net/file_images/a

  • Access 导入到SQL Server 2005的方法小结

    方法一: 名称:DTS(这个在MSSQL2000里边也有) 操作:在命令提示符窗口中运行 DTSWizard.exe SQL Server 导入和导出向导提供了生成 Microsoft SQL Server 2005 Integration Services (SSIS) 包最简单的方法.SQL Server 导入和导出向导可以访问各种数据源.可以向下列源复制数据或从其中复制数据: ·Microsoft SQL Server ·文本文件 ·Microsoft Office Access ·Mic

  • SQL Server 2005基础知识详细整理

    1. ACID:指数据库事务正确执行的四个基本要素缩写:1.原子性2.一致性3.隔离性4.持久性 2.数据库对象:表(table) 视图(view) 存储过程(stored procedure) 函数(function)索引(index) 3.SQL Server 2005中包含master.model.msdb.tempdb四个系统数据库. 4.使用T-SQL语句创建数据库:CREATE DATABASE [ApressFinacial] ON  PRIMARY ( NAME = N'Apre

随机推荐