2016-12-12 16 views
0

私はINSERT INTO tablename SELECT文を使用し、INSERT INTO文はwhere句で終了します。しかし、whereは、意図したとおりに結果をフィルタリングしていません(この基準が満たされていないレコードがフィルタリングされていることがわかります)。だから、なぜ期待される結果が出てこないのか分かりません。where 'select into insert'句はフィルタリングレコードではありません

以下の私のコードを参照してください。

N'INSERT INTO table 
SELECT DISTINCT 
     [Identifier] 
     ,[Variable1] 
     ,[Variable2] 
     ,[Variable3] 
     ,[Variable4] 
     ,[Variable5] 
     ,[Variable6] 
     ,[Variable7] 
     ,[Variable8] 
     ,NULL 
     ,[Variable9] 
     ,NULL 
    FROM [DBname].[tablename].[tablename2] 
WHERE [Variable10] = ''Successful'';' 
+2

サンプルデータを入力できますか?また、INSERTを使わずにSELECTクエリを実行して、疑わしいものが正しいかどうか確認できますか? – DVT

+0

はサンプルデータを提供できません。私はINSERTを使わずにSELECTクエリを実行し、正しい結果を得ました。 – mafro

+0

私は 'where句'の有無にかかわらずクエリを実行するので、同じ数のレコードが得られます。 'where句'を使用して結果から除外された数多くのレコードが存在する必要がありますが、それは起こっていません。 – mafro

答えて

3

無料のビールは、あなたの変数はVARCHAR(300)であり、これは右のWHERE句の前にそれを切り捨て、長い340個の文字であると言います。

+0

ウィットにプラス1つ。 – vamsi

+0

私はvariable10の長さを表示する権限がありません(宣言していないので)、その長さを変更する方法もわかりません。 – mafro

+0

AH - INSERT INTOステートメントのサイズを意味します。あなたは正しかった。それは5000文字の長さで、私はwhere節が少し長くなったと思います... – mafro

0

テーブル名が正しいですか? ([DBname].[tablename].[tablename2]

挿入するテーブル構造は正しいですか?

Declare @sql varchar(4000) 
Set @sql =N' 
    INSERT INTO [TITMS_Test].[dbo].[GROUP] (Name, Description) 
    SELECT DISTINCT Name, Description 
    FROM [TITMS].[dbo].[GROUP] 
    WHERE [Name] = ''Imported'';' 
Print @sql 
Exec (@sql) 
+0

はい - 'where'句を除いてすべてが完全に機能します。 – mafro

関連する問題