我试图创建一个存储,将接受两个值,列名和值。 然后,它会检查是否有存在于列名与价值传递的传递的记录。 我已经试过以下
CREATE PROCEDURE p_HasActiveReference
@pi_colName varchar(100)
,@pi_colValue varchar(100)
AS
BEGIN
SET NOCOUNT ON
declare @sql varchar(1000)
set @sql = 'IF EXISTS(SELECT TOP 1 p.PaymentId
FROM Payments p
WHERE ' + @pi_colName + ' = ' + @pi_colValue + 'AND Active = 1)
SELECT ''True'' AS RETVAL
ELSE
SELECT ''False'' AS RETVAL'
exec(@sql)
END
不过,我总是得到这个错误
转换转换VARCHAR值“InternalOr”为int数据类型时失败。
当我打电话的方法,用以下
p_HasActiveReference 'InternalOrgCode', '10110'
所述internalOrgCode
列是值的varchar(10)
我不是一个SQL专家,所以我也不知道我需要什么,以实现使用这种技术甚至有可能!
谢谢!