sql - 如何从另一个存储过程调用一个存储过程?

标签 sql sql-server-2005 stored-procedures

我有一个带有许多参数的插入存储过程 - 其中两个是@FirstName、@LastName。
我还有一个更新存储过程,它采用许多参数 - 其中 2 个是@FirstName、@LastName。

我想要做的是,从插入 SP 内部,完成后,调用更新 SP 并将@FirstName、@LastName 发送给它。

我不知道这样做的正确语法;我试过:

exec  LandData_Update @FirstName, @LastName

但我认为这是错误的。

谁能告诉我这个电话怎么写?

如果我将使用不同的参数名称调用更新 sp?比如@MyFirstName、@MyLastName?我会这样写吗:EXECUTE LandData_Update @MyFirstName=@FirstName, @MyLastName=@LastName ?

最佳答案

是什么让你认为这是错误的?

CREATE PROCEDURE MyInsertSP
    @FirstName varchar(255),
    @LastName  varchar(255)
AS
BEGIN
    INSERT INTO Table VALUES('Some Value')

    EXECUTE LandData_Update @FirstName, @LastName
END

你得到一个错误或什么?

编辑:
变量的名称是什么并不重要,但是要执行您想要的操作,您可以声明两个新变量。
DECLARE @MyFirstName varchar(255)
DECLARE @MyLastName  varchar(255)

SET @MyFirstName = @FirstName
SET @MyLastName  = @LastName

然后使用新变量。但同样,存储过程并不关心变量的名称。

关于sql - 如何从另一个存储过程调用一个存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1184325/

相关文章:

c# - 寻找 Web 应用程序的设计技巧以将 SQL 数据显示为图表

java - 如何使用带有 "select"关键字的 MySql 存储过程迭代 ResultSet?

c# - 您可以调用多个存储过程作为事务回滚的一部分c#

sql - Oracle CASE 表达式文档问题

Mysql 忽略 varchar 主键上的条件 'where'

sql - 数据库中已经有一个名为 '#result' 的对象

sql-server - 压缩文件夹中的 SQL 备份

sql - 如何检索刚插入数据库的记录的特定字段

mysql 存储过程动态Where 子句

mysql - 重写存储过程以返回而不是中值 (50%),20%/30% 等位置的项目