我是SQL Server的新手,想實現這個場景。我的存儲過程從C#Web應用程序獲取8個輸入參數,並檢查表中的所有輸入。爲此目的,我寫了這個簡單的存儲過程:如何在我的存儲過程中實現這個T-SQL?
CREATE PROCEDURE CheckValid
@p_bank varchar,
@p_pay_date varchar,
@p_bill_id varchar,
@p_payment_id varchar,
@p_ref_code varchar,
@p_branch varchar,
@p_channel_type varchar,
@p_send_date varchar
AS
BEGIN
SELECT
[p_bank], [p_pay_date], [p_bill_id], [p_payment_id],
[p_ref_code], [p_branch], [p_channel_type], [p_send_date]
FROM
[SAMPLE].[dbo].[MixedTable]
WHERE
[p_bank] = @p_bank
AND [p_pay_date] = @p_pay_date
AND [p_bill_id] = @p_bill_id
AND [p_payment_id] = @p_payment_id
AND [p_ref_code] = @p_ref_code
AND [p_branch] = @p_branch
AND [p_channel_type] = @p_channel_type
AND [p_send_date] = @p_send_date
END
但要恢復到C#應用程序這種情況下,例如C#將所有領域,但是當用於此目的的存儲過程中選擇運行無法找到數據,例如p_bill_id
不正確的插入表中選擇查詢的詳細解釋到哪裏在[p_bill_id]子句= @ p_bill_id不信任,現在想回SP這樣的:
p_bill_id,not found
和其他例如C#中的所有變量正確的,但兩場[ p_channel_type]和[p_payment_id]不正確到where子句,但其他6字段現在正確SP返回th S:
[p_channel_type],not found
[p_payment_id],not found
問題的總結:
如果沒有找到傳遞的參數值數據,我希望它返回相應的列。
例如:
[p_channel_type],not found
[p_payment_id],not found
[不良習慣踢:宣佈不VARCHAR(長度)](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/ 10/09/bad-habits-to-kick-declaring-varchar-without-length.aspx) - 你應該總是**爲任何'varchar'變量和參數提供一個長度,你使用 –