动态复制 SQL Server 数据的脚本

Posted

技术标签:

【中文标题】动态复制 SQL Server 数据的脚本【英文标题】:Script to replicate SQL Server data dynamicaly 【发布时间】:2012-12-17 17:38:44 【问题描述】:

我有一个带有 SQL Server 数据库的 access 2010 应用程序。

但我需要做一个离线版本。所以我想我会在他们的计算机上创建一个本地 SQL Server 数据库,然后他们可以在他们上路之前运行一个脚本来更新他们的数据。

注意:不会有任何同步。离线模式下的数据仅供只读,任何更改都会丢失。

我尝试过这样的 Management Studio:

但我意识到数据是硬编码的,而不是从选择中插入。

有什么简单的方法可以创建脚本吗?

到目前为止,我在访问中通过查询来创建我的在线数据库的备份。 然后我通过查询将备份恢复到本地服务器。

唯一的问题是如何为第二个查询构建连接字符串。目前设置为这个

ODBC;DRIVER=SQL Server;SERVER=010-068\SQLEXPRESS;UID=marcAndreL;Trusted_Connection=Yes;DATABASE=SMD

但因为它对每个人来说都是不同的数据库,所以它不会起作用。

我们如何构建自定义连接字符串?

【问题讨论】:

是否可以选择创建备份文件并将其还原到本地计算机?与此 ***.com/questions/4723195/… 或此 ***.com/questions/243583/… 相反 我是否应该通过查询来创建备份文件,然后使用本地连接字符串创建另一个以恢复备份?它会起作用吗?我已经得到了那个脚本mssqltips.com/sqlservertip/1070/… 我没试过,所以不能确定,但​​听起来不错。你在 SQL Server 领域比 MS Access 更擅长这个领域,使用合适的 SQL Server 标签可能值得一问。 我更新了我的问题。有没有简单的方法或者我必须在 VBA 中构建一个? 您想要为每个用户自定义连接字符串以进行直通查询?如果是这样,最简单的方法是文件 dns。我会发布一些笔记。 【参考方案1】:

我正在使用 SQL Server Express 2012 和 Windows 身份验证,因此使用提供的答案 here,我发现这对我有用:

Sub TestCon()
Dim cn As New ADODB.Connection

    cn.Open ServerConLocal
End Sub

Function ServerConLocal()
    ''OleDB Connection
    ServerConLocal = "Provider=sqloledb;Data Source=localhost\SQLEXPRESS;" _
    & "Initial Catalog=Test;Integrated Security=SSPI;"
End Function

对于直通查询中的 ODBC 连接字符串,这对我有用:

ODBC;Driver=SQL Server Native Client 11.0;Server=localhost\SQLEXPRESS;Database=test;

Trusted_Connection=yes;

【讨论】:

我在设计器里做的时候,一定要写ODBC;DRIVER=SQL Server;吗?【参考方案2】:

查看有关合并复制的仅供下载的文章。 MSDN.

【讨论】:

以上是关于动态复制 SQL Server 数据的脚本的主要内容,如果未能解决你的问题,请参考以下文章

仅使用脚本在 MS SQL Server 之间移动多个表

将表数据类型从 SQL Server 转换为 Oracle 并将动态 SQL 数据插入到表数据类型

动态分区值 SQL Server Azure Synapse

SQL Server - 动态数据透视表 - SQL 注入

SQL Server:多列的动态数据透视

SQL Server 中的动态数据透视表