我正在处理我的小项目,并在此时停止了 我有2个sql服务器,一个是 - 部门sql server(READONLY)和我的本地服务器进行复制。 在VB.net中,我打开与adodb lib的连接
connectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Work;Data Source=server1\SQLEXPRESS"
ginfo = "Select * From base1.dbo.table1 "
cn = New ADODB.Connection
rs = New ADODB.Recordset
cn.Open(connectionString)
rs.Open(ginfo, cn, ADODB.CursorTypeEnum.adOpenStatic)
i = 0
With rs
If rs.BOF = False Then
Do While Not .EOF
ReDim Preserve users(i)
users(i).name = rs.Fields(2).Value
lb_sfio.Items.Add(users(i).name)
i = i + 1
.MoveNext()
Loop
End If
End With
因此,下一阶段是连接到第二台服务器并从另一台服务器获取信息 文字很相似。 但是,我有趣的是如何使用SQL脚本语言处理2台服务器 例如
ginfo = "SELECT * FROM srv1.bs1.dbo.tbl1 EXCEPT SELECT * FROM srv2.bs1.dbo.tbl1"
因为在我的变种中是两个慢。 也许第二个问题是如何在没有完全比较的情况下找到DB中的更新(db有4k字符串,这很无聊)。
答案 0 :(得分:5)
您可以将Server2
添加为Server1
Server1
。
然后,您对use base1
SELECT field1 FROM table1 EXCEPT SELECT field1 FROM server2.base1.dbo.table1
的查询将如下所示:
ALTER ANY LINKED SERVER
但是你应该知道linked server对链接服务器的查询。
关联程序需要Server1
的{{1}}权限。您不必每次在查询之前重复此操作,链接的服务器将变为持久性,直到被删除。