我有这个代码将插入到一个表到另一个表的数据中。问题是,我现在正试图从远程mssql服务器插入到我的本地mssql服务器的表中。如何使用VB.net的sql脚本?
我现在收到错误:
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:TCP提供程序,错误:0 - 连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接主机无法响应而建立连接失败。)
这是我目前的代码:
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim rowsAffected As Integer = 0
Dim myConnectionString = "Data Source=(IP Address),1433;Network Library=DBMSSOCN;Initial Catalog=dbase;User ID=sa;Password=password;"
Dim myconnectionstring2 = "Data Source= PC-Name;Initial Catalog=dbase;Integrated Security=True;Pooling=False"
'Dim myConnection As New SqlConnection(myConnectionString)
Dim myQuery As String = "INSERT INTO dbase.dbo.tbltransactions1 SELECT * FROM dbase.dbo.tbltransactions1"
'Dim myQuery As String = "insert INTO (table)"
'select
'from LinkedserverName.DatabaseName.SchemaName.TableName"
Dim myCommand As New SqlCommand(myQuery, myConnection, myConnection2)
Try
myConnection.Open()
rowsAffected = myCommand.ExecuteNonQuery()
Catch ex As Exception
MsgBox(" ")
Finally
myConnection.Close()
End Try
Label1.Text = rowsAffected.ToString()
End Sub
*具有IP地址的连接字符串是我想要连接的服务器,而另一个是我本地服务器的连接字符串..
答案 0 :(得分:1)
您的最佳镜头是指向远程服务器的本地服务器的Linked Server
。
另一种方法是在DataTable
中获取远程数据,然后将其从DataTable
推送到本地数据库。
目前,您正在订购本地sql以与远程服务器通信。如果没有设置Linked Server
,就不会发生这种情况。
要设置Linked Server
:
SSMS
并连接到本地服务器。Server Objects
。Right Click
Linked Servers
。
New Linked Server
Server Name
SQL Server
Security
标签中添加登录映射。您必须提供远程服务器的凭据。Local Login
列中添加用于连接Local Server
的用户名。Impersonate
col。Remote Server
和Remote User
下的Remote Password
的用户名和密码。Not Be Made
。然后您就可以运行以下查询:
SELECT * FROM [RemoteServerIP].[RemoteServerDB].[RemoteServerSchema].[RemoteServerTable]