我想了解是否有一种方法可以编写包含来自不同服务器(env)的列的存储过程。我想编写一个存储过程来验证一个过程,以检查测试环境和生产环境之间的记录计数之间的差异。
TIA
最佳答案
要查询不同sql server的Azure DB,Elastic query可以使用。
在此重现中,创建了两个 SQL 服务器。一个用于测试,另一个用于生产。
然后,表被添加到两个数据库中。两者的表名相同。
使用以下代码并根据要求更改配置。
CREATE MASTER KEY; -- create master key
GO
-- credential maps to a login or contained user used to connect to remote database
CREATE DATABASE SCOPED CREDENTIAL CrossDbCred1 -- credential name
WITH IDENTITY = 'username', -- login or contained user name
SECRET = '**********'; -- login or contained user password
GO
-- data source to remote Azure SQL Database server and database
CREATE EXTERNAL DATA SOURCE source
WITH
(
TYPE=RDBMS, -- data source type
LOCATION='server.database.windows.net', -- Azure SQL Database server name
DATABASE_NAME='database1', -- database name
CREDENTIAL=CrossDbCred1 -- credential used to connect to server / database
);
GO
-- external table points to table in an external database with the identical structure
CREATE EXTERNAL TABLE [dbo].[ext_src]
(
[Id] [int]
)
WITH (DATA_SOURCE = [source], -- data source
SCHEMA_NAME = 'dbo', -- external table schema
OBJECT_NAME = 'source' -- name of table in external database
);
GO
- 此演示给出了用于比较表之间计数的 SQL 查询。
同样,我们可以编写存储过程来比较计数。
关于azure - 在 Azure SQL 中查询来自不同服务器的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74269191/