Я ищу идеи о том, как скопировать структуру таблицы в базе данных SQL как другую таблицу в той же базе данных.
У меня есть база данных SQL (статистика), которая содержит несколько больших транзакционных таблиц (т.е. значительно больше 2 ГБ), которые связаны с моей базой данных Access. Периодически мне нужно архивировать текущие данные и создавать новую таблицу с такой же структурой и в базе данных SQL.
Я могу перейти от CurrentDb по ссылке «tbl LESSON SESSION DETAILS» на базовую таблицу SQL «dbo.tbl LESSON SESSION DETAILS» и строку подключения к базе данных SQL.
Я рассмотрел использование DoCmd.TransferDatabase для достижения результата, используя следующий код: -
dbsA As Database
sTableName = "tbl LESSON SESSION DETAILS"
dbType = "ODBC Database"
sDatabasePath = CurrentDb.TableDefs(sTableName).Connect
Set dbsA = DBEngine(0).OpenDatabase("MyDB", dbDriverCompleteRequired, _
False, sDatabasePath)
sTableName = dbsA.TableDefs(sTableName).Name
sTableNameNew = sTableName & "_New"
DoCmd.TransferDatabase acExport, dbType, _
strTAbleName, acTable, dbsA, sTableNameNew, structureonly:=True
Однако, когда я запускаю этот код, он терпит неудачу, так как 'acExport' ожидает, что sTableName будет в CurrentDB, а sTableNameNew будет в базе данных dbsA. Изменение CurrentDb может быть одним из вариантов, но я не нашел никаких идей о том, как это сделать.