簡體   English   中英

SQL Server插入命令錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM