簡體   English   中英

不允許從數據類型varchar到varbinary的隱式轉換。使用CONVERT函數運行此查詢

[英]Implicit conversion from data type varchar to varbinary is not allowed. Use the CONVERT function to run this query

我從存儲過程中得到以下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函數運行此查詢。

有人可以告訴我如何解決這個問題?

這樣的事可能有用。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM