CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

求教 SQL中常用的Stored Procedure (存储表过程)?推荐者有分!

楼主westwin(浮躁的很)2002-01-15 15:02:51 在 VB / 基础类 提问

求教   SQL中常用的Stored   Procedure   (存储表过程)?  
  请列举出一些最常用的,它们的意义?  
  推荐者有分! 问题点数:100、回复次数:11Top

1 楼westwin(浮躁的很)回复于 2002-01-15 15:05:16 得分 0

就是类似于   sp_help的那种Top

2 楼songyangk(小草)回复于 2002-01-15 15:07:51 得分 20

sp_help     查看数据信息  
  sp_addlogin   sp_droplogin   增加、删除login  
  sp_adduser   sp_dropuser   增加、删除login  
  sp_password   设置密码  
  sp_attach_db   激活数据库  
  等等,好多呢,找本书吧。Top

3 楼gmc007(江西的佬表)回复于 2002-01-15 15:11:23 得分 20

sp_helptext  
  用这个存储过程可以查看存储过程的内容  
  如:sp_helptext   sp_help  
  ==================  
  其实你应该看看这方面的书,或者SQL   SERVER的在线帮助,或者MSDN  
  Top

4 楼tpProgramer(tp编程者)回复于 2002-01-15 15:14:08 得分 30

 
  存储过程,一般都是自己编写,用于一组对数据库的操作,是一组SQL   语句以及控制语句、变量等等的组合。  
  例子一个   创建一个表:  
  CREATE   TABLE   [dbo].[pch_Train]   (  
                  [TrainID]   [char]   (9)   NOT   NULL   ,  
                  [StartCityID]   [char]   (3)   NOT   NULL   ,  
                  [TargetCityID]   [char]   (3)   NOT   NULL   ,  
                  [DaysConsuming]   [int]   NOT   NULL   ,  
                  [DepTime]   [char]   (4)   NOT   NULL   ,  
                  [ArrTime]   [char]   (4)   NOT   NULL   ,  
                  [TrainNumber]   [varchar]   (10)   NOT   NULL   ,  
                  [TrainTypeID]   [int]   NOT   NULL   ,  
                  [Discount]   [int]   NULL   ,  
                  [AwardNumber]   [int]   NULL   ,  
                  [Brokerage]   [money]   NULL   ,  
                  [ValidDate]   [datetime]   NULL   ,  
                  [Remark]   [varchar]   (100)   NULL   ,  
                  [RecordTimestamp]   [timestamp]   NULL   ,  
                  [DeleteFlag]   [bit]   NULL   ,  
                  [CreateDateTime]   [datetime]   NULL   ,  
                  [UpdateDateTime]   [datetime]   NULL    
  )   ON   [PRIMARY]  
  GO  
   
  下面的存储过程对此表进行操作(根据id更新一条记录):  
  /*============================================*/  
  create   PROCEDURE   pch_TrainUpdate  
  /*修改一条火车标信息*/  
  (  
                  @TrainID   char   (9)   ,  
                  --@StartCityID   char   (3)   ,  
                  --@TargetCityID   char   (3)   ,  
                  @DaysConsuming   int   ,  
                  @DepTime   char   (4)   ,  
                  @ArrTime   char   (4)   ,  
                  @TrainNumber   varchar   (10)   ,  
                  @TrainTypeID   int   ,  
                  @Discount   int   ,  
                  @AwardNumber   int   ,  
                  @Brokerage   money   ,  
                  @ValidDate   datetime   ,  
                  @Remark   varchar   (100)   ,  
                   
                  @ReturnCode   int   output,  
                  @RowCount   int   output  
  )  
  AS  
                  set   nocount   on  
                  Begin   Transaction  
                  Update   pch_Train  
                  set  
                                    --StartCityID=@StartCityID   ,  
                                  --TargetCityID=@TargetCityID   ,  
                                  DaysConsuming=@DaysConsuming,  
                                  DepTime=@DepTime   ,  
                                  ArrTime=@ArrTime   ,  
                                  TrainNumber=@TrainNumber   ,  
                                  TrainTypeID=@TrainTypeID   ,  
                                  Discount=@Discount   ,  
                                  AwardNumber=@AwardNumber   ,  
                                  Brokerage=@Brokerage   ,  
                                  ValidDate=@ValidDate   ,  
                                  Remark=@Remark   ,  
                                  UpdateDateTime=   getdate()  
                  where   TrainID=@TrainID  
                  if   @@error   !=   0   or   @@rowcount   !=   1   goto   RollbackAndReturn  
                 
                  select   *   from   pch_Train(NOLOCK)  
                  where   TrainID   =   @TrainID  
                  if   @@error   !=   0   or   @@rowcount   !=   1   goto   RollbackAndReturn  
         
                  goto   CommitAndReturn  
   
  RollbackAndReturn:  
      rollback   transaction  
      raiserror('更新pch_Train失败',   1,1)  
      goto   returnresultset  
   
  CommitAndReturn:  
      commit   Transaction  
   
  ReturnResultSet:  
      set   @ReturnCode   =   @@error  
      set   @RowCount   =   @@rowcount  
      return   @ReturnCode  
   
  GO  
   
  Top

5 楼ferrytang(欢迎你)回复于 2002-01-15 15:17:36 得分 15

sp_executesql  
  执行可以多次重用或动态生成的   Transact-SQL   语句或批处理。Transact-SQL   语句或批处理可以包含嵌入参数。  
   
  语法  
  sp_executesql   [@stmt   =]   stmt  
  [  
          {,   [@params   =]   N'@parameter_name     data_type   [,...n]'   }  
          {,   [@param1   =]   'value1'   [,...n]   }  
  ]  
   
  参数  
  [@stmt   =]   stmt  
   
  包含   Transact-SQL   语句或批处理的   Unicode   字符串,stmt   必须是可以隐式转换为   ntext   的   Unicode   常量或变量。不允许使用更复杂的   Unicode   表达式(例如使用   +   运算符串联两个字符串)。不允许使用字符常量。如果指定常量,则必须使用   N   作为前缀。例如,Unicode   常量   N'sp_who'   是有效的,但是字符常量   'sp_who'   则无效。字符串的大小仅受可用数据库服务器内存限制。  
   
  stmt   可以包含与变量名形式相同的参数,例如:  
   
  N'SELECT   *   FROM   Employees   WHERE   EmployeeID   =   @IDParameter'  
   
  stmt   中包含的每个参数在   @params   参数定义列表和参数值列表中均必须有对应项。  
   
  [@params   =]   N'@parameter_name     data_type   [,...n]'  
   
  字符串,其中包含已嵌入到   stmt   中的所有参数的定义。该字符串必须是可以隐式转换为   ntext   的   Unicode   常量或变量。每个参数定义均由参数名和数据类型组成。n   是表明附加参数定义的占位符。stmt   中指定的每个参数都必须在   @params   中定义。如果   stmt   中的   Transact-SQL   语句或批处理不包含参数,则不需要   @params。该参数的默认值为   NULL。  
   
  [@param1   =]   'value1'  
   
  参数字符串中定义的第一个参数的值。该值可以是常量或变量。必须为   stmt   中包含的每个参数提供参数值。如果   stmt   中包含的   Transact-SQL   语句或批处理没有参数,则不需要值。  
   
  n  
   
  附加参数的值的占位符。这些值只能是常量或变量,而不能是更复杂的表达式,例如函数或使用运算符生成的表达式。  
   
  返回代码值  
  0(成功)或   1(失败)  
   
  Top

6 楼ferrytang(欢迎你)回复于 2002-01-15 15:18:22 得分 15

sp_lock  
  报告有关锁的信息。  
   
  语法  
  sp_lock   [[@spid1   =]   'spid1']   [,[@spid2   =]   'spid2']  
   
  参数  
  [@spid1   =]   'spid1'  
   
  是来自   master.dbo.sysprocesses   的   Microsoft®   SQL   Server™   进程   ID   号。spid1   的数据类型为   int,默认值为   NULL。执行   sp_who   可获取有关该锁的进程信息。如果没有指定   spid1,则显示所有锁的信息。  
   
  [@spid2   =]   'spid2'  
   
  是用于检查锁信息的另一个   SQL   Server   进程   ID   号。spid2   的数据类型为   int,默认设置为   NULL。spid2   为可以与   spid1   同时拥有锁的另一个   spid,用户还可获取有关它的信息。    
   
   
   
  说明     sp_who   可含有   0   个、1   个或   2   个参数。这些参数确定存储过程是显示全部、1   个还是   2   个   spid   进程的锁定信息。  
   
   
  返回代码值  
  0(成功)  
   
  Top

7 楼westwin(浮躁的很)回复于 2002-01-15 15:26:54 得分 0

看不懂tpProgramer(tp编程者)者所写的东东,等到明天来结帐Top

8 楼gmc007(江西的佬表)回复于 2002-01-15 15:53:07 得分 0

tpProgramer(tp编程者)者所写的东东  
  你都看不懂,更证明你应该看看书先!Top

9 楼westwin(浮躁的很)回复于 2002-01-15 15:57:44 得分 0

看懂了,:P,先创建一个表,然后创建存储表过程(里面是一些sql语句对该表进行操作),right?Top

10 楼westwin(浮躁的很)回复于 2002-01-15 16:18:33 得分 0

upupupupupTop

11 楼westwin(浮躁的很)回复于 2002-01-16 08:46:53 得分 0

upupTop

相关问题

  • 散分,贴好文章推荐者者可得分
  • 散分,贴好书推荐者可得分
  • SQL server的存储过程
  • sql数据存储问题
  • SQL Server存储过程
  • 关于sql存储问题
  • sql存储过程问题
  • SQL SERVER存储一问
  • Oracle的存储过程与MS SQL Server的存储过程
  • Oracle的存储过程如何转成SQL Server存储过程

关键词

  • 语句
  • 存储过程
  • 数据库
  • 数据
  • unicode
  • 信息
  • 参数
  • 常量
  • spid
  • 字符串

得分解答快速导航

  • 帖主:westwin
  • songyangk
  • gmc007
  • tpProgramer
  • ferrytang
  • ferrytang

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo