我是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'变量和参数提供一个长度,你使用 –