2011-04-06 84 views
0

新的使用SQL和我遇到麻煩完成我認爲很簡單的事情。SQL VB.net插入使用選擇和值

我想創建和INSERT,將插入MAX()值從一個表中的第一列到另一個表中的第一列,而其餘的列將填充參數。

我試着切換我的代碼,看看我是否有錯誤的語法,但我沒有運氣,我甚至不知道我想要做什麼是可能的(至少在一個INSERT )。

這裏是我的時刻:

INSERT INTO [Table2] VALUES(SELECT(Number FROM [Table1] WHERE Max(Number)), @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10) 
+0

嘗試建立在SQL Server Management Studio中(SSMS)的腳本,然後再工作它進入你的代碼。 – JeffO 2011-04-06 14:04:20

回答

1

select語句必須用括號括起來,我建議你總是把列的列表中插入語句

Insert into [MyTable] (Max,Value1,Value2,Value3) values((select Max(Number) from Table1),@p1,@p2,@p3) 
+0

啊,該死的括號。感謝您的幫助,這完美運作。 – RHOMBUS 2011-04-06 14:03:15

0

第一:SELECT MAX說法是錯誤的,正確的語法是:

SELECT Max(Number) From [Table1] 

第二:INSERT語法是錯的。要使用子查詢,你必須選擇在目標表中的每個字段的值,而如果你使用VALUES關鍵字,你必須指定字段中插入值。

所以您的查詢必須成爲像此:

INSERT INTO [Table2] 
SELECT Max(Number), @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10 From [Table1] 

OR(我使用實際的原因較少參數)

INSERT INTO [Table2] (field1,field2,field3) 
VALUES 
(@MAX, @p1, @p2) 

其中@MAX是含有

結果的變量3210
SELECT Max(Number) From [Table1]