我从存储过程中得到以下select语句:
ALTER PROCEDURE [dbo].[Test]
--Params
@SolutionId INT
,@APIKey varbinary(256)
AS
SELECT
SK.SolutionID
,SK.APIKey
,SK.Enabled
FROM
dbo.SolutionKey SK
WHERE
SK.SolutionID = @SolutionId
AND SK.APIKey = @APIKey
AND Enabled = 1
问题是SK.APIKey
是varbinary
数据类型,但在代码的存储过程中,它被传递为' sampledata'所以我得到了错误
不允许从数据类型varchar到varbinary的隐式转换。使用CONVERT函数运行此查询。
有人可以告诉我如何解决这个问题?
答案 0 :(得分:24)
这样的事可能有用。
ALTER PROCEDURE [dbo].[Test]
--Params
@SolutionId INT
,@APIKey varchar(256)
AS
SELECT
SK.SolutionID
,SK.APIKey
,SK.Enabled
FROM dbo.SolutionKey SK
where SK.SolutionID = @SolutionId
And SK.APIKey = CONVERT(VARBINARY(256), @APIKey, 1)
And Enabled = 1