0
我需要向表中插入一些值,並執行此操作我創建了一個存儲過程。通過4個值。並且可以將兩個值直接插入表中,另外兩個值需要找到ID。在存儲過程中執行語句,out參數總是返回0
我有三個存儲過程。當我執行主存儲過程時,我可以看到兩個被調用的存儲過程被執行並提供了正確的值。但是,該值不會傳遞給參數。
@uid和@did這兩個參數都會在表中反轉0(零)。
我在做什麼錯?
親切的問候,
克萊門斯林德斯
SP MES_D_GetUserID,傳遞一個名字和你起牀的ID作爲字符串 SP MES_D_GetDOrderID,傳遞一個名字,你會得到一個ID爲整數
主要存儲過程:
USE [AddOn_DEV_HE]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[MES_D_Consumed]
@WERKS nvarchar(4), @USERNAME nvarchar(50), @MACHID int, @DRINKORDER nvarchar(50)
WITH EXEC AS CALLER
AS
BEGIN
SET NOCOUNT ON;
Declare @uid AS varchar(10)
Declare @did AS int
Declare @OUTUID AS varchar(10)
Declare @OUTDID AS int
exec @uid = MES_D_GetUserID @USERNAME, @OUTUID OUTPUT;
exec @did = MES_D_GetDOrderID @DRINKORDER, @OUTDID OUTPUT;
INSERT INTO Demo_D_Consumed (Werks, UserID, MachID, DrinkID, TimeDate) VALUES (@WERKS, @uid, @MACHID, @did, GETDATE());
END
and these are the two other stored procedures :
USE [AddOn_DEV_HE]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[MES_D_GetDOrderID]
@DRINK nvarchar(50), @OUTDID int OUTPUT
WITH EXEC AS CALLER
AS
BEGIN
SET NOCOUNT ON;
SELECT RecordNr FROM DEMO_D_ORDERS WHERE Drink = @DRINK
END
USE [AddOn_DEV_HE]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[MES_D_GetUserID]
@USERNAME nvarchar(50), @OUTUID nvarchar(50) OUTPUT
WITH EXEC AS CALLER
AS
BEGIN
SET NOCOUNT ON;
SELECT UserLan FROM sysUsernames WHERE UserName = @USERNAME
END
嗨Artm,謝謝你,它的工作原理! –