我尝试使用这种方式在远程服务器中创建存储过程
EXECUTE (N'USE [master]; EXEC sp_executesql N'+ @sqlCommand) AT [LinkedServer]
但是我收到了这个错误
消息 111,级别 15,状态 1,过程 StoredProcedure,第 5 行 [批处理开始第 0 行]“CREATE/ALTER PROCEDURE”必须是查询批处理中的第一个语句。
在 sqlCommand 中有类似这样的查询
SET @sqlCommand = '
CREATE OR ALTER PROCEDURE [dbo].[storedName]
@nameDB varchar(50)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @SQLProcessesRep varchar(max);
--Actions in Stored
END'
您可以使用四部分命名
sp_executesql
直接在链接服务器数据库的上下文中调用。master
如果链接服务器名称位于变量中,您甚至可以动态执行此操作
嗯,是的
您有两个选择:
USE [master];
EXEC之前的,依赖用户的默认数据库是master你的第二个选择看起来像这样:
如果您遇到任何其他问题,请提出新问题。