Tentei criar um procedimento armazenado em um servidor remoto desta forma
EXECUTE (N'USE [master]; EXEC sp_executesql N'+ @sqlCommand) AT [LinkedServer]
No entanto, recebi este erro
Msg 111, Nível 15, Estado 1, Procedimento StoredProcedure, Linha 5 [Batch Start Line 0] 'CREATE/ALTER PROCEDURE' deve ser a primeira instrução em um lote de consulta.
no sqlCommand tem a consulta semelhante a esta
SET @sqlCommand = '
CREATE OR ALTER PROCEDURE [dbo].[storedName]
@nameDB varchar(50)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @SQLProcessesRep varchar(max);
--Actions in Stored
END'
Você pode chamar
sp_executesql
diretamente no contexto domaster
banco de dados do servidor vinculado, usando nomenclatura em quatro partes.Se o nome do servidor vinculado estiver em uma variável, você poderá fazer isso dinamicamente
bem, sim
Você tem duas opções:
USE [master];
antes do EXEC e confie no banco de dados padrão do usuário como mestreSua segunda opção ficaria assim:
Se você encontrar algum problema adicional, faça uma nova pergunta.