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