存储过程之间相互调用

来源:互联网 发布:java调用存储函数 编辑:程序博客网 时间:2024/05/21 06:12
 

callzjy的专栏

总经理吗?经常性地总结性地理一理!
原创 - 59,翻译 - 0,转载 - 0, 点击 - 20338, 评论 - 15, trackbacks - 0

导航

  • CSDN首页
  • Blog
  • 我的Blog
  • 后台管理
  • 论坛
  • 文档
  • 档案
  • 联系
  • RSS 2.0 Feed
  • 搜索

文章

  • ADO.NET(RSS)
  • C++基础(RSS)
  • Delphi(RSS)
  • ERP开发(RSS)
  • SQL SERVER(RSS)
  • VB控件使用技巧(RSS)
  • VC下的ADO入门(RSS)
  • 开发COM组件(RSS)
  • 一生中最爱(RSS)

收藏

     

相册

  • MY SOFT

DELPHI

  • 2ccc
  • anylib
  • delphifans
  • devexpress
  • suipack

ERP

  • 中国站长联盟
  • 地区分类

NET

     

SQL

  • 龙卷风

存档

  • 2006年11月(5)
  • 2006年10月(2)
  • 2005年02月(2)
  • 2004年05月(2)
  • 2004年04月(1)
  • 2004年03月(21)
  • 2004年02月(2)
  • 2004年01月(5)
  • 2003年12月(19)

最近评论

  • callzjy:/*
    调用例子:
    */
    select idcard as 原身份证号,
    xym as [校验码(1成功,0失败)],
    xx as 校验信息,
    newidcard as 新身份证号,
    csny as 出生年月,
    nl_y as 虚岁年龄,
    nl_m as [实际年龄(按月)],
    nl……
  • callzjy:不写封装函数,也可以这样调用
    declare @xb varchar(4)
    declare @d datetime
    select @d=getdate()
    select @xb=xb_c from dbo.fun_id_card('身份证号',-1,@d)
    select @xb
  • 大勇:早点说嘛,发贴的顺序都不对,我是说我把代码输进去为什么老是不对了。
  • wd_6532:我的邮箱wd@zibo.com.cn
    五体投地
  • wd_6532:写的太绝了,特别是那两个表格,让我一下子就茅塞顿开。

    基类只能访问自己定义过的函数类型。

    如果派生类有新定义了类型,基类是不能访问的。

    这句话听过很多遍了,但是你的图配上你的话,太绝了

 存储过程之间相互调用

if object_id('pro1') is not null
      drop proc pro1
if object_id('pro2') is not null
      drop proc pro2
if object_id('tbtest') is not null
      drop table tbtest
GO
create table tbtest(id int identity(1,1),name varchar(20))
insert tbtest(name)
select 'x' union all
select 'myname' union all
select 'myname' union all
select 'yourname' union all
select 'myname'
select * from tbtest
GO
----创建存储过程1
create proc pro1 @a varchar(16) = null,@returnvalue int=null output
as
      select @returnvalue = max(id) from tbtest where name = @a
GO
----创建存储过程2(在该存储过程中调用存储过程1)
create proc pro2 @cmd nvarchar(4000)
as
declare @r int
      set @r = 0
      exec sp_executesql @cmd,N'@r int output',@r output
      select @r
GO

----调用存储过程2
declare @cmd Nvarchar(4000)
--set @cmd = 'exec pro1 ''myname'',@r output'
set @cmd = 'exec pro1 @a=''myname'',@returnvalue=@r output'--效果同上一条语句
exec pro2 @cmd

----清除测试环境
drop proc pro1,pro2
drop table tbtest 

需要注意的地方是@cmd声明成nvarchar(4000)

--再举一例
if object_id('prc11') is not null
      drop proc prc11
go

CREATE PROC PRC11(
@a varchar(16)=null,
@returnvalue int=null output
)
AS BEGIN
    SET @returnvalue = LEN(@A) + 2234
END
go

declare @cmd Nvarchar(1000),@r int
set @r = 0
set @cmd = 'exec PRC11 @a=''myname11'',@returnvalue=@r output'
exec sp_executesql @cmd ,N'@r int output',@r output
SELECT @R

drop proc prc11



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1365283


[收藏到我的网摘]   你懂事吗?董事长!发表于 2006年11月03日 20:03:06

相关文章:
  • 请问如何在存储过程中引用别的存储过程返回的表 2006-03-09 ReViSion
  • 如何在pl/sql中创建及调用JAVA存储过程 2005-04-06 zonelive
  • 关于asp调用oracle存储过程的问题 2005-08-12 amintter
  • 管理存储过程 2006-06-29 dshpsky
  • 通过ADOQuery调用SQLServer的存储过程 2006-05-16 uudelphi
微软官方最新技术丛书系列

权威的黑皮书更新了
与微软技术同步更新的技术图书microsoft

book.csdn.net/

.NET 2.0 实战从入门到精通

微软新技术全掌握
成为程序设计高手的捷径microsoft

book.csdn.net/

DBA高手成功捷径

网管员也能如此轻松
现在你就是DBA高手sql server

book.csdn.net/

Csdn提供的广告   Csdn  Tag
没有评论。

发表评论

      大名 网址   评论 
验证码 VerifyCode
 
原创粉丝点击