我有這樣的數據的表,和一個程序要在它填充數據這樣的,如何將表傳遞給存儲過程?
DECLARE @ClaimChanges TABLE (
ChangeType NVARCHAR(10)
,contract_id int NOT NULL
,dispatch_id int NOT NULL
,dispatch_claim_id int NOT NULL
,item_no VARCHAR(100) NULL
,old_units VARCHAR(100) NULL
);
我將隨後要的數據傳遞給這將這樣來定義一個不同的存儲過程,
CREATE procedure [dbo].[ct_audit_oncost](
@table TABLE readonly,
@OutValue nvarchar(255) = null output
)
as
-- some stuff
go
我推測這是不可能的,因爲我得到一個錯誤,
Incorrect syntax near the keyword 'TABLE'.
這絕對有可能。你不能任意傳遞一個表。它需要被定義爲用戶定義的表類型。然後你可以通過表值參數傳遞它們。 https://docs.microsoft.com/en-us/sql/relational-databases/tables/use-table-valued-parameters-database-engine –