SQL Server 2008Scripts todos los procedimientos almacenados a la vez con la gota y crear
Objetivo: Para generar secuencias de comandos para la creación de procedimientos almacenados que ya están en la base de datos. Debe ser una secuencia de comandos por archivo.
Sé que simplemente puedo hacer clic con el botón derecho en la base de datos y en "Tareas> Generar secuencias de comandos", pero eso no procesa el sproc en la plantilla que quiero.
Necesito que sproc se escriba en la misma plantilla que obtiene cuando hace clic derecho en el sproc del explorador de objetos y 'Procedimiento almacenado de script como> DROP y CREAR'.
Es cierto que obtiene una versión similar de este a través de 'las tareas> generar scripts', pero la principal diferencia es el método de las 'tareas> generar scripts' crea la secuencia de comandos a través del comando dbo.sp_executesql
porque no se puede anidar un CREATE PROCEDURE
interior de un IF
bloquear
tareas> Generar produce esto:
USE someDB
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'somesproc') AND type in (N'P', N'PC'))
DROP PROCEDURE someSproc
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'someSproc') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'-- =============================================
CREATE PROCEDURE
AS
BEGIN
END
'
END
GO
Pero esto requiere (como se encuentra de hacer clic derecho en el sproc):
USE someDB
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'someSproc') AND type in (N'P', N'PC'))
DROP PROCEDURE someSproc
GO
USE someDB
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE someSproc
AS
BEGIN
SET NOCOUNT ON;
END
GO
¿Alguna idea?
Esto se soluciona con CREA O REEMPLAZA: ¿has votado/comentado?:-) http://connect.microsoft.com/SQLServer/feedback/details/127219/create-or-replace –
Algunas preguntas sobre su salida deseada. ¿Necesitas 'USE someDB' entre cada declaración? Supongo que está bien ignorar los permisos y el orden de dependencia, ese tipo de cosas? –
Solo necesita el único 'USE someDB'. Y sí, esos dos pueden ser ignorados. –