2016-04-02 77 views
-1

このコードを実行すると、このエラーが発生します。 オペランドタイプのクラッシュ:uniqueidentifierがintと互換性がありません。このエラーを解決するにはどうすればよいですか?おかげSQL Server - オペランドタイプのクラッシュ:uniqueidentifierがintと互換性がありません

CREATE FUNCTION [a01].[udf_isUserActive] 
(@AccountID INTEGER) 
    RETURNS BIT 
    AS 
    BEGIN 
IF (EXISTS (SELECT accountID 
      FROM [a01].[tbl_userAccounts] 
      WHERE accountID = @AccountID 
        AND isActive = 1)) 
    RETURN 1; 

RETURN 0; 
END; 
GO 
+2

'accountID'のデータ型はおそらく整数ではなく、' uniqueidentifier'です。 –

+0

機能CREATE [A01]。[udf_isUserActive] (@AccountID UNIQUEIDENTIFIER)(([A01]。[tbl_userAccounts] WHEREのaccountID = @AccountID ANDのisActive = 1とのaccountID を選択存在する場合 をBEGIN AS RETURNSビット)) リターン1; RETURN 0; END; GO – BakingCake

+0

これは良いバージョンです^? – BakingCake

答えて

1

はおそらくtbl_userAccountsタイプUNIQUEIDENTIFIERAccountIDを持って、あなたはUNIQUEIDENTIFIERで@AccountID INTEGERを比較しようとしています。

サイドノート:テーブルスキーマと関数呼び出しコンテキスト全体を指定する必要があります。スカラー関数が各選択された行ごとに呼び出されるので、関数を呼び出すこともperformance problemsにつながる大きな変化です。

関連する問題