EXEC和EXECUTE主要是用来执行存储过程、SQL语句等。
但它不仅限于执行本地SQL的对象,和AT参数结合,可以执行远程服务器的存储过程,SQL语句等
下面是简单的例子:
创建Linked Server:
EXEC SP_AddLinkedServer '192.168.1.10', 'SQL Server'
EXEC sp_addlinkedsrvlogin '192.168.1.10', 'false', NULL, 'sa', 'password'
启动Linked Server的RPC Calls(很重要)
EXEC SP_ServerOption '192.168.1.10','RPC OUT',TRUE
执行远程查询
EXECUTE ('Select * from Sys.Databases') AT [192.168.1.10]
执行远程存储过程
EXECUTE ('master.dbo.sp_who') AT [192.168.1.10]
EXECUTE ('master.[dbo].[sp_helpdb] ''master''') AT [192.168.1.10]