我一直在努力與SQL語句一段時間了,我似乎無法繞過我的頭問題。SQL - 插入語句與子查詢,然後更新語句
我想使用SELECT
子查詢在表A
中插入新記錄。完成後,我想更新表B
中的記錄。
這裏是我試過(虛擬SQL,外觀類似):
INSERT INTO [A] (ID, Expiration, Type)
VALUES ({some-id}, (
SELECT [B].[Expiration], [B].[Type] FROM [B]
WHERE [B].ID = {other-id}))
運行時的聲明,我得到以下錯誤:
Only one expression can be specified in the select list when the subquery is not introduced with EXISTS
我不太確定錯誤存在的地方,但我懷疑這與我的where
子句有關select
編輯 此查詢從.net解決方案中運行。我有查詢的設置是這樣的:
string insertStatement = "INSERT INTO [A] (ID, Expiration, Type) "
+ "VALUES (@someId, (SELECT [B].[Expiration], [B].[Type] "
+ "WHERE [B].ID = @otherId))";
command.CommandText = insertStatement;
command.AddParameter("@someId", someId);
command.AddParameter("@otherId", otherId);
command.ExecuteNonQuery();
您可以使用臨時表的概念,然後將臨時表爲[A] 。 – Bharat