Criando instruções m tempo de execução
A maioria dos aplicativos do MicrosoftSQL Server que precisa compilar instruções SQL dinamicamente em tempo de execução faz isso antes de chamar uma função de API ou método de banco de dados para executar a instrução. Por exemplo, um aplicativo em linguagem C que usa ODBC pode compilar uma ou mais instruções SQL dinamicamente em uma matriz de caractere e, depois, passar a matriz às funções SQLPrepare ou SQLExecDirect do ODBC.
O Transact-SQL dá suporte aos seguintes métodos de compilação de instruções SQL em tempo de execução em scripts , procedimentos armazenados e gatilhos do Transact-SQL:
Use o procedimento armazenado do sistema sp_executesql para executar uma cadeia de caracteres Unicode. O sp_executesql dá suporte a substituição de parâmetro semelhante à instrução RAISERROR.
Use a instrução EXECUTE para executar uma cadeia de caracteres. A instrução EXECUTE não dá suporte à substituição de parâmetro na cadeia de caracteres executada.
Observação sobre segurança O uso da instrução EXECUTE para execução de uma cadeia de caracteres facilita ataques de injeção SQL. Por isso, recomendamos a utilização do sp_executesql com parâmetros.