2017-05-09 88 views
0

我有以下語句,它在'From'子句中有一個語法錯誤,它有幾個卷表名。實際的數據庫名稱與表格相同,因此它們都是獨立的。在Select Into語句中發生錯誤

我打開一個到SealRegister mdb的連接,該連接是空的(沒有表格),然後在語句上執行ExecuteNonQuery。我認爲應該在SealRegister.mdb中創建SealRegister表。

sqlcommand = @"Select ""Plant"" As Geometry, A.Asset_ID, B.RoadID, A.AssetType, B.RoadName, B.SegmentNo, C.AadtCount, C.CommVehCnt " + 
    @"Into [SealRegister] " + 
    @"From [C:\AR\Plant\Accounting\2015].ARPlntPA_2015_07-2016_06+10yrs As A " + 
     @"LEFT OUTER JOIN ([C:\AR\Lines\Accounting\2015].ARLnPA_2015_07-2016_06+10yrs As B " + 
     @"LEFT OUTER JOIN [C:\AR\Lines\TEMP].ARLnX As C On B.Asset_ID = C.Asset_ID) On A.Parent_ID = B.Asset_ID " + 
      @"WHERE AssetType = 'Wearing Course'"; 

什麼我需要做什麼來糾正語法

[編輯]

connStr =「供應商= Microsoft.ACE.OLEDB.12.0;數據來源 = C:\ AR \ TEMP \ SealRegister.mdb」

+0

你有什麼錯誤。你在使用哪個驅動程序? – tafia

+0

彈出上面的連接字符串 – Hank

+0

爲什麼使用特殊的操作符作爲數據庫名稱?可能需要使用方括號來包裝這些名稱,例如:'FROM [C:\ AR \ Plant \ Accounting \ 2015]。[ARPlntPA_2015_07-2016_06 + 10yrs] AS A'。 '-'和'+'標記每個都爲SQL中的minus和plus運算符保留,因此不能將它直接用作不帶括號的表名。 –

回答

0

這工作:

sqlcommand = @"Select ""Plant"" As Geometry, A.Asset_ID, B.RoadID, A.AssetType, B.RoadName, B.SegmentNo, C.AadtCount, C.CommVehCnt " + 
    @"Into [SealRegister] " + 
    @"From [C:\AR\Plant\Accounting\2015\ARPlntPA_2015_07-2016_06+10yrs].[ARPlntPA_2015_07-2016_06+10yrs] As A " + 
     @"LEFT OUTER JOIN ([C:\AR\Lines\Accounting\2015\ARLnPA_2015_07-2016_06+10yrs].[ARLnPA_2015_07-2016_06+10yrs] As B " + 
     @"LEFT OUTER JOIN [C:\AR\Lines\TEMP].ARLnX As C On B.Asset_ID = C.Asset_ID) On A.Parent_ID = B.Asset_ID " + 
      @"WHERE AssetType = 'Wearing Course'";