【问题标题】:Connection String For Local and Remote MSSQL SQL Insert Into本地和远程 MSSQL SQL 插入的连接字符串
【发布时间】:2013-10-01 07:54:56
【问题描述】:

我有这段代码可以将数据从一个表插入到另一个表中。问题是我现在正试图从远程 mssql 服务器插入到我的本地 mssql 服务器的表中。它的 sql 脚本将如何使用 VB.net?

我现在收到一个错误:

在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:TCP Provider,错误: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地址的连接字符串是我要连接的服务器,而另一个是我本地服务器的连接字符串..

【问题讨论】:

  • 您是否收到错误消息?
  • 是的.. 我做的错误消息是:建立与 SQL Server 的连接时发生网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:TCP Provider,错误:0 - 连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应。)

标签: sql-server vb.net tsql connection-string


【解决方案1】:

最好的方法是向本地服务器发送Linked Server 指向远程服务器。

另一种方法是在本地获取DataTable 中的远程数据,然后将其从DataTable 推送到本地数据库。

目前您正在订购本地 sql 以与远程服务器进行通信。如果不设置Linked Server,这将不会发生。

为了设置Linked Server

  1. 打开SSMS 并连接到您的本地服务器。
  2. 扩展您的服务器节点。
  3. 展开Server Objects
  4. Right Click Linked Servers
  5. 选择New Linked Server
  6. Server Name 上键入远程服务器的 IP
  7. 选择SQL Server
  8. Security 选项卡中添加登录映射。您必须提供远程服务器的凭据。
  9. Local Login 列中添加您用于连接到Local Server 的用户名。
  10. 如果远程服务器的凭据与本地服务器中的凭据不同(应该是这种情况),则不要选中 Impersonate
  11. 分别在Remote UserRemote Password 下输入用于登录Remote Server 的用户名和密码。
  12. 出于安全原因,我会在该选项卡底部的单选组中选择Not Be Made

然后您将能够运行如下查询:

SELECT * FROM [RemoteServerIP].[RemoteServerDB].[RemoteServerSchema].[RemoteServerTable]

【讨论】:

  • 谢谢先生.. 试试这个!
  • 先生关于“安全”选项卡中的登录映射的后续问题。我应该使用什么登录?我在本地服务器上的登录名?
  • 感谢您的回复先生.. 非常感谢.. 我只是想澄清一下先生如果您不介意远程用户和远程密码.. 这是我在 SQL 中登录的那个还是RDP中的那个?谢谢..
  • 它是您在远程服务器的 SQL Server Management Studio 中使用的那些。这意味着, 1. 您使用 RDP 登录到远程 Windows 服务器,然后登录到远程 Windows 服务器中的 SSMS。您需要第二个凭据。
  • 现在......有几个原因。我建议检查远程 SQL Server 的配置。它接受远程连接吗?它是否侦听默认端口?由于我不是 DBA,因此我不太适合解决此问题,但我建议您检查谷歌中的一些链接,甚至在这里提出一个新问题。如果你愿意,我找到了一些链接:codeproject.com/Questions/335874/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-08
  • 1970-01-01
  • 2015-04-03
  • 1970-01-01
  • 2012-03-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多