[英]How to write the stored procedure query
我正在嘗試創建一個存儲過程,以將新記錄插入到INVOICE
表中
詳細信息是:
當有FK和int列時,如何編寫存儲過程查詢以在INVOICE
插入新行?
這是我所做的,但不正確:
CREATE PROC spNewCustomer_INVOICE
AS
BEGIN
DECLARE @INV_NUMBER VARCHAR(50);
DECLARE @CUS_CODE VARCHAR(50);
DECLARE @INV_DATE VARCHAR(50);
AS
INSERT INTO INVOICE
VALUES (@INV_NUMBER, @CUS_CODE, @INV_DATE)
調用它:
EXEC spNewCustomer_INVOICE '2018', '20018', '2018-08-17'
謝謝你的幫助!
首先-您需要為存儲過程創建參數 -而不是內部變量。
其次,我強烈建議為每個參數使用最合適的數據類型 -而不是所有參數都使用VARCHAR(50)
。 表的列的類型為INT
和DATETIME
使用這些類型的參數!
第三,我建議始終明確指定要插入的目標表的列。
總而言之,請嘗試以下代碼:
CREATE PROCEDURE NewCustomerInvoice
@INV_NUMBER INT,
@CUS_CODE INT,
@INV_DATE DATETIME
AS
BEGIN
INSERT INTO INVOICE (INV_NUMBER, CUS_CODE, INV_DATE)
VALUES (@INV_NUMBER, @CUS_CODE, @INV_DATE);
END;
然后使用以下命令調用此過程:
EXEC NewCustomerInvoice
@INV_NUMBER = 2018,
@CUS_CODE = 20018,
@INV_DATE = '20180817';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.