我想要做這樣的事情:插入查詢中的內部聯接?
insert into TableA
(val1,val2)
values
("value",(select top 1 tableB.X from tableB where [email protected]))
我得到這個錯誤:
Subqueries are not allowed in this context. Only scalar expressions are allowed
如何阻止這種錯誤?
我想要做這樣的事情:插入查詢中的內部聯接?
insert into TableA
(val1,val2)
values
("value",(select top 1 tableB.X from tableB where [email protected]))
我得到這個錯誤:
Subqueries are not allowed in this context. Only scalar expressions are allowed
如何阻止這種錯誤?
假設你正在使用SQL Server:
insert into tableA
(val1, val2)
select top 1 'value', tableB.x from tableB where tableB.Y = @y
我假設你有直接插入使用到表的SELECT ...語法。
在這種情況下沒有「值」。上述
人們一直比我快,但我與他們的建議同意
你接近:
INSERT INTO TableA(val1, val2)
SELECT top 1 "value", X FROM TableB WHERE Y = @y
試試這個
insert into TableA (val1,val2)
select top 1 "value",X from tableB where [email protected]
另外,劣質選項是更少的代碼變化: 定義一個臨時值。
declare @scalarval int
select @scalarval = tableB.X from tableB where [email protected]
insert into TableA (val1,val2)
values("value",@scalarval)
然而插入語法更清晰。
不正確的語法NEAD頂部? – user278618 2010-02-26 17:48:35
我相信你是對的;我不相信你可以做最好的選擇到這樣的變量。也許選擇top 1? 固定查詢。 – Broam 2010-02-26 19:48:40
StringBuilder sb=new StringBuilder();
sb.Append("declare @id int select @id = top 1 TableB.id from TableB where [email protected] order by TableB.id desc insert into TableA(col1,col2,col3,col4) Values (@val1,@val2,@val3,@id)");
靠近頂部的語法不正確。
如何處理?
// MSSQL服務器
+1:打我給它 – 2010-02-26 16:47:36
感謝您的格式編輯和給予好評:-) – ristonj 2010-02-26 16:48:56