[英]SQL Server Insert Command Error
INSERT INTO BORCODEME
( BORCODEME.IslemTarihi, BORCODEME.IslemAciklamasi,BORCODEME.IslemTutari)
VALUES(
(SELECT BORCLAR.BorcTarih,BORCLAR.BorcAciklama,BORCLAR.BorcTutari FROM BORCLAR WHERE BORCLAR.BorcMusteriID=6),
(SELECT ODEMELER.OdemeTarihi,ODEMELER.OdemeAciklama,ODEMELER.OdemeTutar FROM ODEMELER WHERE ODEMELER.OdemeMusteriID=6)
)
我的SQL命令是這樣,我有這些錯誤;
消息116,第16層,狀態1,第4行
如果未使用EXISTS引入子查詢,則只能在選擇列表中指定一個表達式。
消息116,第16層,狀態1,第6行
如果未使用EXISTS引入子查詢,則只能在選擇列表中指定一個表達式。
消息109,第15層,狀態1,第1行
INSERT語句中的列多於VALUES子句中指定的值。 VALUES子句中的值數必須與INSERT語句中指定的列數匹配。
不確定您真正要尋找的是什么-您是否要插入兩個表中的三列? 然后像這樣編寫您的INSERT
:
INSERT INTO BORCODEME(IslemTarihi, IslemAciklamasi, IslemTutari)
SELECT
BORCLAR.BorcTarih, BORCLAR.BorcAciklama, BORCLAR.BorcTutari
FROM
BORCLAR
WHERE
BORCLAR.BorcMusteriID = 6
UNION
SELECT
ODEMELER.OdemeTarihi, ODEMELER.OdemeAciklama, ODEMELER.OdemeTutar
FROM
ODEMELER
WHERE
ODEMELER.OdemeMusteriID = 6
因此,這將插入來自三個值BORCLAR
和另一排從三個值ODEMELER
。
如果這不是您想要的,那么您需要更詳細地說明您真正想要的是.....
在一般情況下,你可以使用這個語法:
INSERT INTO dbo.TargetTable (List-of-Columns)
VALUES (List-of-atomic-values)
或者如果您不能提供原子值(文字或T-SQL變量),則可以使用
INSERT INTO dbo.TargetTable (List-of-Columns)
SELECT list-of-columns
FROM dbo.SourceTable
( 但是您不能混合-您不能有VALUES
,然后在其中使用SELECT
)
在這兩種情況下, INSERT
語句中的列數 必須與 VALUES
提供的原子值的數目或SELECT
語句選擇的列數完全匹配
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.