Pergunta

Eu não entendo por que o seguinte está me dando o erro. Eu pensei que estava relacionado com a seção comentada, mas @SQL é nvarchar (4000).

BEGIN
  sp_executesql N'SELECT ''td'''
  --sp_executesql @SQL, N'@StartDate DateTime, @EndDate DateTime, @End2 DateTime, @Program varchar(4)', @StartDate, @EndDate, @End2, @Program
END
Foi útil?

Solução

É por isso que:

-- This works just fine:
BEGIN
  -- You must have an exec before your sp_executesql or it will not work in a block
  exec sp_executesql N'SELECT ''td'''
END

Você não pode simplesmente chamar uma proc armazenados sem um exec quando você está em um bloco.

Outras dicas

Por que você tem esta fechado em uma BEGIN ... END? Executando o sp_executesql externa do bloco vai funcionar.

Opcionalmente, você pode colocar um exec antes sp_executesql.

Em algumas ocasiões eu tive que usar mestre, bem como:

exec master..sp_executesql 
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top