Tengo un script sql que se establece para pasar a producción. Envolví los diversos proyectos en transacciones separadas. En cada una de las transacciones creamos procedimientos almacenados. Recibo mensajes de errorTSQL - crear un proceso almacenado dentro de una declaración de transacción
Msg 156, nivel 15, estado 1, línea 4 Sintaxis incorrecta cerca de la palabra clave 'procedure'.
he creado este script de ejemplo para ilustrar
Begin Try
Begin Transaction
-- do a bunch of add/alter tables here
-- do a bunch of data manipulation/population here
-- create a stored proc
create procedure dbo.test
as
begin
select * from some_table
end
Commit
End Try
Begin Catch
Rollback
Declare @Msg nvarchar(max)
Select @Msg=Error_Message();
RaisError('Error Occured: %s', 20, 101,@Msg) With Log;
End Catch
El error parece dar a entender que no puedo crear procedimientos almacenados dentro de la transacción, pero no estoy encontrando ninguna documentación que dicen lo contrario (tal vez google ISN siendo amable hoy).
es esto para el servidor sql? –
sí, lo siento, debería haber mencionado eso. sql 2008. –
Decidí sacar el proceso de creación de la transacción y probar/atraparlo en su propia sección. Puse una declaración "if exists then drop" y agregué una (s) declaración (es) "if exists then print message" (existente) alrededor de la creación del proceso almacenado. Gracias por todos los comentarios, aprendí algo de eso. –