1
SELECT 
    New_accountid AS AccountId
FROM 
    BingMapsPlatform_MSCRM.dbo.FilteredAccount WITH (NOLOCK)
WHERE 
    new_islicensed = 1
    AND new_accountid NOT IN (SELECT DISTINCT CONVERT(INT,New_AccountId)
                              FROM BingMapsPlatform_MSCRM.dbo.New_keydenylistExtensionBase WITH (NOLOCK)
                              WHERE New_AccountId IS NOT NULL)

このスクリプトからこのエラーが発生しています。私を助けてください 。

エラーメッセージ: 状態 1、行 1
nvarchar 値 'アカウント 1' をデータ型 int に変換するときに、変換に失敗しました。

4

2 に答える 2

0

Idはintですか?、GUIDまたはシーケンシャルGUIDの可能性があります。そうでない場合は、テーブルを半分に分割し、エラーを生成する行を特定するまで再実行します(最初に愚かさをチェックするために1行だけで試してみます)。ああ、最初にテーブルの内容をバックアップにコピーします(しかしあなたはそれを知っていました)

于 2013-03-19T09:30:25.427 に答える
0

この行がエラーの原因です:

CONVERT(INT,New_AccountId)

フィルターを使用してテーブルで通常の選択を行います: where accountId = 'account 1'、この値を変更して再試行してください。

ISNUMERIC(input)関数を使用して、変換前に数値かどうかを判断し、そうでない場合はデフォルト値として 0 または -1 を使用することを検討してください (例については、この回答を参照してください)。

于 2013-03-19T10:27:26.033 に答える