Sql server 我可以通过链接服务器调用Azure数据库中的存储过程吗?

Sql server 我可以通过链接服务器调用Azure数据库中的存储过程吗?,sql-server,azure-sql-database,Sql Server,Azure Sql Database,我有两个SQL Server数据库,一个在Azure中(Azure SqlDb),用于前端,另一个在本地(后端) 在Azure中,没有保存的作业。但我需要一个维护存储过程每20分钟运行一次 Azure Db已经将其设置为链接服务器,因此在我看来,在本地Db中设置作业很容易,然后该作业只调用Azure Db上的存储过程 可能吗?在我看来,这是应该的,但我以前从未这样做过 这似乎比设置弹性数据库作业来运行它要简单得多 当然。确保在链接服务器上启用RPC OUT,然后可以运行任意TSQL批处理,如下所

我有两个SQL Server数据库,一个在Azure中(Azure SqlDb),用于前端,另一个在本地(后端)

在Azure中,没有保存的作业。但我需要一个维护存储过程每20分钟运行一次

Azure Db已经将其设置为链接服务器,因此在我看来,在本地Db中设置作业很容易,然后该作业只调用Azure Db上的存储过程

可能吗?在我看来,这是应该的,但我以前从未这样做过


这似乎比设置弹性数据库作业来运行它要简单得多

当然。确保在链接服务器上启用RPC OUT,然后可以运行任意TSQL批处理,如下所示:

EXEC sp_dropserver @server=N'MyAzureSqlDB', @droplogins='droplogins'
GO

EXEC sp_addlinkedserver @server = N'MyAzureSqlDB', 
                        @srvproduct=N'', 
                        @provider=N'SQLNCLI', 
                        @datasrc=N'xxxxxxxx.database.windows.net', 
                        @catalog=N'MyDatabase'

EXEC sp_addlinkedsrvlogin @rmtsrvname=N'MyAzureSqlDB',
                          @useself=N'False',
                          @locallogin=NULL,
                          @rmtuser=N'MyUserName',
                          @rmtpassword='xxxxxxxx'
GO

EXEC sp_serveroption @server=N'MyAzureSqlDB', @optname=N'collation compatible', @optvalue=N'true'
EXEC sp_serveroption @server=N'MyAzureSqlDB', @optname=N'data access', @optvalue=N'true'
EXEC sp_serveroption @server=N'MyAzureSqlDB', @optname=N'rpc out', @optvalue=N'true'
EXEC sp_serveroption @server=N'MyAzureSqlDB', @optname=N'remote proc transaction promotion', @optvalue=N'false'
GO

exec ('exec SomeProc') at MyAzureSqlDb

当然。确保在链接服务器上启用RPC OUT,然后可以运行任意TSQL批处理,如下所示:

EXEC sp_dropserver @server=N'MyAzureSqlDB', @droplogins='droplogins'
GO

EXEC sp_addlinkedserver @server = N'MyAzureSqlDB', 
                        @srvproduct=N'', 
                        @provider=N'SQLNCLI', 
                        @datasrc=N'xxxxxxxx.database.windows.net', 
                        @catalog=N'MyDatabase'

EXEC sp_addlinkedsrvlogin @rmtsrvname=N'MyAzureSqlDB',
                          @useself=N'False',
                          @locallogin=NULL,
                          @rmtuser=N'MyUserName',
                          @rmtpassword='xxxxxxxx'
GO

EXEC sp_serveroption @server=N'MyAzureSqlDB', @optname=N'collation compatible', @optvalue=N'true'
EXEC sp_serveroption @server=N'MyAzureSqlDB', @optname=N'data access', @optvalue=N'true'
EXEC sp_serveroption @server=N'MyAzureSqlDB', @optname=N'rpc out', @optvalue=N'true'
EXEC sp_serveroption @server=N'MyAzureSqlDB', @optname=N'remote proc transaction promotion', @optvalue=N'false'
GO

exec ('exec SomeProc') at MyAzureSqlDb