2016-11-21 28 views
0

SQL Server 2008で作業していますが、挿入クエリを作成しましたが、データをテーブルに挿入していません。クエリを挿入するとテーブルにデータが挿入されませんが、エラーは発生しません

私のクエリで何が問題なのか教えていただけますか?あなたは固定値を使用している場合

insert into sc_trln 
(doc_ref 
, doc_type 
, item 
, qty 
, unit 
, factor 
, unit_cost 
, cost_per_unit 
, item_tot 
, item_name 
) 
select 'SA/000091' 
,  'SA' 
,  '006824' 
,  '-2.000' 
,  'PCS ' 
,  '1.000' 
,  '0.6446' 
,  '0.6446' 
,  '-1.2892' 
,  'ALALAI ORANGE JAMS 465GM' 
+0

をコピーして貼り付けた例です。 –

答えて

0
はVALUESにSELECTからあなたの構文を変更し

は、ここに私のクエリです。このように大括弧で値を囲みます。

INSERT INTO sc_trln (doc_ref, doc_type, item, qty, unit, factor, unit_cost, cost_per_unit, item_tot, item_name) 
VALUES ('SA/000091', 'SA', '006824', '-2.000', 'PCS ', '1.000', '0.6446', '0.6446', '-1.2892', 'ALALAI ORANGE JAMS 465GM') 
+0

1つのエントリに値を使用するのと同じくらいかわいいですが、OP構文で何も問題はありません – Matt

0

最初の形式は、データが挿入される列名、のみそれらの値を指定しない:TABLE_NAME VALUES(値1、値2、値3、...)中

INSERTと、

第二の形態は、カラム名と値の両方が挿入さ指定:TABLE_NAME INTO

INSERT(COLUMN1、COLUMN2、COLUMN3を、...) VALUES(値1、値2、VALUE3、.. )。

ただ、必要な変更を行い、それが動作するはずです:)

+0

構文に間違いはありません。選択の際には列名は必要ありません。 – Matt

0

このコメントにはあまりにも長いですが、あなたが表示されている方法と間違って何もありませんが、あなたは文字列として明らかに数値列を含むすべてのものを扱っていますSQLはそれらを適切なデータ型に変換し直します。

問題は、コードの他の部分にある可能性があります。制御フローがIFであるためにコールされたり、トランザクションがエラートラップでロールバックされたりすることはありません。問題を特定するためにコードをもっと投稿する必要があります。

[その他]は、単一の値を挿入するための適切な構文を示していますが、すべてを文字列として扱う以外に、構文は正しくありません。ここで

はほぼ正確にあなたの構文からクエリが読めるメイド

DECLARE @sc_trln AS TABLE (doc_ref VARCHAR(50),doc_type VARCHAR(50),item VARCHAR(50),qty DECIMAL(15,4),unit VARCHAR(50) 
    ,factor DECIMAL(15,4),unit_cost DECIMAL(15,4),cost_per_unit DECIMAL(15,4),item_tot DECIMAL(15,4),item_name VARCHAR(100)) 

insert into @sc_trln(doc_ref,doc_type,item,qty,unit,factor,unit_cost,cost_per_unit,item_tot,item_name) 
select'SA/000091','SA','006824','-2.000','PCS ','1.000','0.6446','0.6446','-1.2892','ALALAI ORANGE JAMS 465GM' 

SELECT * 
FROM 
    @sc_trln 
関連する問題