【发布时间】:2019-07-29 08:36:19
【问题描述】:
我有这样的程序
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[INSERT_MessageOwner]
@ownertype AS INT,
@ownertenant AS INT
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO ADMINROTAS.dbo.MessageOwner
OUTPUT Inserted.MessageOwnerID
VALUES (@ownertype, @ownertenant);
END
如果我这样调用该过程:
DECLARE @messageOwnerType INT;
SET @messageOwnerType = 3;
...
EXECUTE [ADMINROTAS].[dbo].INSERT_MessageOwner @messageOwnerType
...
我明白了
过程或函数“INSERT_MessageOwner”需要参数“@ownertenant”,但未提供该参数。
如果我这样称呼它:
DECLARE @messageOwnerType INT;
DECLARE @messageOwnerDB INT;
SET @messageOwnerType = 3;
SET @messageOwnerDB = DB_ID();
...
EXECUTE [ADMINROTAS].[dbo].INSERT_MessageOwner @messageOwnerType, @messageOwnerDB
...
我明白了
过程或函数 INSERT_MessageOwner 指定的参数过多。
有人知道这里发生了什么吗?我想这可能与 OUTPUT 子句有关,但我很难弄清楚它或找到正确的教学。
如果有人能把我放在照片中,我将不胜感激。说了这么多,这个错误信息有问题吗?你放弃了争论!添加一个。现在你有太多了!
另外,如果您能帮助我了解如何将存储过程的结果放入变量中,我将不胜感激。这个存储过程在 JDBC 中很有用,但现在我想在 T-SQL 中使用它。
非常感谢。
【问题讨论】:
-
有什么更新吗?你试过什么吗?
标签: tsql stored-procedures sql-server-2014