我有一個主表「維修」和詳細信息表「RepairDetails」我試圖寫一個程序來更新這兩個表,當我從我的應用程序發送相應的參數。這是我的SQL:不明白SQL程序錯誤
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[UpdateRepair]
@RepairID bigint,
@TypeID bigint = NULL,
@Directions nvarchar(3000) = NULL,
@NewDetails NewDetails READONLY
AS
BEGIN
SET NOCOUNT ON;
UPDATE Repairs
SET
TypeID = ISNULL(@TypeID, TypeID),
Directions = ISNULL(@Directions, Directions),
LastUpdate = SYSDATETIME()
WHERE RepairID = @RepairID;
IF @NewDetails IS NOT NULL UpdateRepairDetails;
END
其中「NewDetails」是一個用戶定義的表型和「UpdateRepairDetails」是一個不同的存儲過程需要@RepairID和@NewDetails作爲參數。
我有一個錯誤和問題。錯誤消息是:
Must declare the scalar variable "@NewDetails"
我不明白,因爲它是定義。
我的問題是:將參數「@RepairID」和「@NewDetails」都會自動傳遞給「UpdateRepairDetails」的過程。如果沒有,那麼完成這個的正確方法是什麼?
它說'@ NewDetails'不是標變量,而不是它是不確定的。 NewDetails是一個表類型嗎? – Andomar
@Andomar代碼下面的句子回答你的問題。 – SezMe