Ошибка в операторе Select Into

У меня есть следующий оператор с синтаксической ошибкой в ​​предложении «От», в котором есть несколько фигурных имен таблиц. Фактические имена баз данных совпадают с именами таблиц, поэтому все они разделены.

Я открываю соединение с SealRegister mdb, который пуст (пока нет таблиц), затем ExecuteNonQuery для оператора. Это, я думаю, должно создать таблицу SealRegister в SealRegister.mdb.

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"


person Hank    schedule 09.05.2017    source источник
comment
Какая у вас ошибка. Какой драйвер вы используете?   -  person tafia    schedule 09.05.2017
comment
Выскочила строка подключения выше   -  person Hank    schedule 09.05.2017
comment
Зачем использовать специальные операторные символы в качестве имени БД? Возможно, вам нужно использовать квадратные скобки, чтобы обернуть эти имена, например: FROM [C:\AR\Plant\Accounting\2015].[ARPlntPA_2015_07-2016_06+10yrs] AS A. Каждый знак - и + зарезервирован для операторов минус и плюс в SQL, поэтому вы не можете использовать его напрямую в качестве имени таблицы без скобок.   -  person Tetsuya Yamamoto    schedule 09.05.2017
comment
В чем ошибка?? При доступе Если я правильно помню, вам также нужно вкладывать объединения в скобки: select a from (t1 inner join t2 on ...) t3 inner join t4 on ...   -  person tafia    schedule 09.05.2017


Ответы (1)


Это работает:

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'";
person Hank    schedule 09.05.2017