【问题标题】:Creating structureonly copy of SQLserver table in MS Access在 MS Access 中创建仅结构的 SQL 服务器表副本
【发布时间】:2011-05-16 12:29:02
【问题描述】:

我正在寻找有关如何将 SQL 数据库中的表结构复制为同一数据库中的另一个表的想法。

我有一个 SQL 数据库(统计数据),其中包含许多链接到我的 Access 数据库的大型事务表(即远高于 2Gb)。我需要定期归档当前数据并在 SQL 数据库中创建一个具有相同结构的新表。

我可以通过“tbl LE​​SSON SESSION DETAILS”链接从 CurrentDb 导航到底层 SQL“dbo.tbl LE​​SSON 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 可能是一种选择,但我还没有找到有关如何做到这一点的任何想法。

【问题讨论】:

    标签: sql-server ms-access vba structure


    【解决方案1】:

    在数据库端写一个存储过程:

    SELECT TOP 1 * INTO [tbl_LESSON_SESSION_DETAILS_NEW] FROM [tbl_LESSON_SESSION_DETAILS];
    DELETE FROM [tbl_LESSON_SESSION_DETAILS_NEW];
    

    然后只需从您的代码中执行存储的过程。您可以替换表名/w 变量,然后从您的代码中您可以为新表命名任何您喜欢的名称。

    http://msdn.microsoft.com/en-us/library/aa258259(v=sql.80).aspx

    http://support.microsoft.com/kb/306574

    您可能需要考虑将指针保留在原始表中,并将其归档为新的“备份”版本,然后将其擦除:

    SELECT * INTO [tbl_LESSON_SESSION_DETAILS_BAK_05152011] FROM [tbl_LESSION_SESSION_DETAILS];
    DELETE [FROM tbl_LESSION_SESSION_DETAILS];
    

    可能想要加强一点,以确保 真正确定在将数据从原始表中删除之前,您仍然可以在新表中获得数据...

    【讨论】:

    【解决方案2】:

    您有一些参数的顺序错误。您混合了数据库名称和源参数。试试这个:

    DoCmd.TransferDatabase acExport, dbType, strTAbleName, acTable, dbsA, sTableNameNew, structureonly:=True
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多