zoukankan      html  css  js  c++  java
  • SQL 存储过程调用存储过程

    研究一个别人做的项目代码看到数据库里有一段存储过程调用存储过程的代码,原来的代码比较复杂。 于是自己打算写一个简单的例子学习一下。

    一、首先创建了被需要被调用的存储过程。

    USE [MSPetShop4]  //使用的PetShop的现成数据库
    GO

    ALTER PROCEDURE [dbo].[uspGetCategoryID]
    @Name varchar(20),
    @CateID varchar(20) output  //输出变量加输出标记output
    AS
    BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SELECT @CateID = [CategoryId]  //输出变量赋值

    FROM [MSPetShop4].[dbo].[Category] where Name = @Name
    END

    二、调用存储过程

    USE [MSPetShop4]
    GO

    ALTER procedure [dbo].[saveProduct]
    (
    @prodid char(20),
    @catname char(20),
    @ProdName char(20)
    )
    as
    begin
    set nocount on
    declare @CategoryID varchar(20)  //用来存储输出结果的变量
    exec dbo.uspGetCategoryID @Name=@catname , @CateID=@CategoryID output //原来的代码是两个一样名字的变量 我换了下不一样的名字  发现是  被调用的存储过程结果变量 =  需要接收结果存储变量名 和我想的不一样

    select @CategoryID

    insert into Product values(@prodid,@CategoryID,@ProdName,'','')
    end

  • 相关阅读:
    java 中for each语句
    设备树使用手册
    Java中 final static super this instanceof 关键字用法
    Java 抽象类与oop三大特征
    Views的补充
    Form表单组件验证
    django信号相关
    缓存实例
    自定义django中间件
    【主机管理项目】-(路由表)
  • 原文地址:https://www.cnblogs.com/dangkei/p/3461595.html
Copyright © 2011-2022 走看看