1

私はこれに腹を立てます。私は次のSPを持っています:

ALTER PROCEDURE [BankImport].[spBI_getIsBatchUnique]
    @batchName varchar = 500
AS
BEGIN
    SET NOCOUNT ON;
    IF (EXISTS (SELECT 1 FROM [ACN_Main].[BankImport].[tblBI_Jobs]
            WHERE [batchNumber] = @batchName))
        BEGIN
            SELECT 1
        END
    ELSE
        BEGIN
            SELECT 0
        END     
    END
GO

しかし、リクエストが何であれ、私は常に0を返します!

いくつかの方法で変更しようとしましたが、成功しませんでした。私がする必要があるのは、そのバッチ番号のレコードがあるかどうかを確認してtrueを返すことです。そうでない場合は、falseを返します。

ヒントはありますか?

ありがとう

4

2 に答える 2

8

入力パラメータが少しおかしいようです

@batchName varchar = 500

これだったらよかったの?

@batchName varchar(500)

つまり、varcharデータ型の長さ、現在の長さを設定しますbatchName。パラメータのデフォルト値は500です。

于 2012-06-18T13:08:28.637 に答える
1

batchNumberとbatchNameを比較するので、試してみてください

EXISTS (SELECT 1 FROM [ACN_Main].[BankImport].[tblBI_Jobs]
        WHERE [batchName] = @batchName)
于 2012-06-18T13:10:56.587 に答える