创建sqlCommand以从另一个mssql服务器更新一个mssql服务器上的表

时间:2014-04-17 14:20:09

标签: sql sql-server

这是我现在正在使用的代码

'Declaring Connection String
        Dim sqlConnectionString As String
        sqlConnectionString = ConfigurationManager.ConnectionStrings("baminterchangerConnectionString").ConnectionString
        Dim sqlConnection As New SqlConnection(sqlConnectionString)

'Declaring SQL Queries
        Dim insertSQL As String = "insert into [dbo].[imports](OEMPartNumber) values (@OEMPartNumber)"
        Dim update As String = "UPDATE a SET a.AMIPartNumber = coalesce(c.Item,e.Item), a.AMIDescription = coalesce(c.Description, e.Description),a.OEMDescription = coalesce(b.OEMDescription,d.OEMDescription)FROM imports as a LEFT JOIN JD as b ON a.OEMPartNumber = b.OEMSubNumber LEFT JOIN amipartnumbers as c ON b.OEMCurrentPartNumber = c.OEMItem LEFT JOIN IH as d ON a.OEMPartNumber = d.OEMSubNumber LEFT JOIN amipartnumbers as e ON d.OEMCurrentPartNumber = e.OEMItem"

'Declaring SQL Commands
        Dim sqlInsertCommand As New SqlCommand(insertSQL)
        Dim sqlSelectCommand As New SqlCommand("SELECT * FROM [dbo].[imports]", sqlConnection)
        Dim sqlUpdateCommand As SqlCommand = New SqlCommand(update, sqlConnection)

这正是我需要做的事情。

然而,现在我正在尝试添加另一个变量。对于在imports.AMIPartNumber中不匹配的项目,我需要在我的其他sqlserver上查询另一个表。

能做到吗?使用另一个sql server上另一个表'JD_ALL'中的数据更新一个sql server上的表'imports'?

我有这个工作在网站上显示数据,但这是用于csv文件导入。在站点上显示数据时,我可以使用多个连接来填充2个不必连接的不同数据表。

1 个答案:

答案 0 :(得分:0)

你有两个选择。之一:

1)在配置文件中为其他服务器创建一个新的连接字符串,然后在代码中创建一个新的连接。然后,在使用其他连接和命令之前,您将执行另一个命令以从其他数据库中检索数据。

例如:

'Declaring Connection String
        Dim sqlConnectionString As String
        sqlConnectionString = ConfigurationManager.ConnectionStrings("baminterchangerConnectionString").ConnectionString
        Dim sqlConnection As New SqlConnection(sqlConnectionString)

       Dim sqlConnectionStringOtherDatabase As String
        sqlConnectionStringOtherDatabase = ConfigurationManager.ConnectionStrings("otherConnectionString").ConnectionString
        Dim sqlConnectionOtherDatabase As New SqlConnection(sqlConnectionStringOtherDatabase)


Dim sqlSelectCommandToOtherDB As New SqlCommand("SELECT * FROM [dbo].[OtherTable]", sqlConnectionStringOtherDatabase)

.... etc

2)正如@Dean所提到的,您可以在sql-server实例上添加链接服务器。这确实假设您具有使用SQL Server配置的访问权限。然后,您可以在另一个数据库上查询另一个数据库,就好像它在同一台服务器上一样。这可能会节省一些代码,但需要更多的设置和配置。