2010-04-19 24 views
10

He estado jugando hoy con procedimientos almacenados. Estoy feliz de haber elegido lo básico tan fácilmente. (También probaré los desencadenantes muy pronto).Cómo guardar un procedimiento almacenado?

Ahora, me gustaría saber cómo guardar mi SPROC en la carpeta de procedimientos almacenados (Programabilidad -> Procedimiento almacenado) para poder acceder a él por mi nombre (eventualmente desde mi aplicación C#). Hasta ahora, cuando presiono el icono de guardar, me propongo guardar toda la consulta. Eso no es lo que quiero.

Gracias por ayudar a

Respuesta

18

En realidad, debe ejecutar el comando CREATE PROCEDURE para que se genere el procedimiento almacenado.

Create Procedure - MSDN

He aquí un ejemplo directamente desde la página de MSDN:

USE AdventureWorks; 
GO 

-- If procedure exists already, drop it 
IF OBJECT_ID ('HumanResources.uspGetAllEmployees', 'P') IS NOT NULL 
    DROP PROCEDURE HumanResources.uspGetAllEmployees; 
GO 

-- Create (or Re-create) the procedure 
CREATE PROCEDURE HumanResources.uspGetAllEmployees 
AS 
    SET NOCOUNT ON; 
    SELECT LastName, FirstName, JobTitle, Department 
    FROM HumanResources.vEmployeeDepartment; 
GO 

Recuerde que después de crear el procedimiento almacenado, que tendrá que Right Click -> Refresh la carpeta de procedimientos almacenados para el nuevo procedimiento que aparezca.

También sugiero guardar el archivo * .sql en algún lugar para que tenga el script CREATE PROCEDURE en algún lugar en caso de que necesite volver a ejecutar.

+0

+1 Para la recomendación * .sql. – systempuntoout

+0

@Justin Niesser (y para todos): Gracias, funcionó. Sin embargo, lamento no haber recibido tu recomendación. Necesito mantener el script CREATE PROCEDURE en algún lugar en caso de que necesite ejecutar lo que de nuevo? el procedimiento almacenado? ¿Necesito crearlo cada vez que necesito usarlo? – Richard77

+0

No necesita crearlo cada vez que lo usa, pero si necesita modificarlo o reconstruir su base de datos ... es bueno tener una copia de seguridad. También podría seguir usando el archivo * .sql para realizar cambios y soltar/recrear el procedimiento en lugar de ejecutar el comando ALTER PROCEUDRE. –

4

que tienen que ejecutar realmente la sentencia de creación proc.

+0

@Mladen Prajdic: Lo he ejecutado usando el comando EXEC, y funcionó. Cuando no vi el SPROC en la carpeta Procedimiento almacenado, pensé que no lo había creado. Así que traté de crearlo de nuevo, pero me dijeron que el objeto con el mismo nombre ya existe. Creo que pude crearlo. Pero, ¿por qué no está visible en la carpeta Programabilidad -> Procedimiento almacenado? – Richard77

+0

@ Richard77, debe presionar el botón Actualizar para verlo. Resalte la carpeta Procedimiento almacenado, luego haga clic en Actualizar y debería verla. SQL Server Management Studio (y probablemente también Server Explorer) no se actualiza automáticamente. –

0

Necesita ejecutar el comando CREATE PROCEDURE.
intento con este sencillo ejemplo de procedimiento almacenado:

CREATE PROCEDURE TestSP 
AS 
SELECT GETDATE() AS MyDate 
GO 
0

Basado en el comentario de la OP:

me he encontrado que el uso de comandos EXEC, y trabajaban. Cuando no vi el SPROC en la carpeta Procedimiento almacenado, I aunque no lo creé. Así que probé para crearlo de nuevo, pero me dijeron que ya existe el objeto con el mismo nombre . Creo que pude crearlo. Pero, ¿por qué no está visible en la carpeta de Programación -> Almacenado ?

Cuando ejecuta el procedimiento almacenado CREATE PROCEDURE.... por primera vez, es posible que necesite actualizar su lista de procedimientos almacenados en SSMS. Haga clic derecho y luego ACTUALIZAR.

Cuestiones relacionadas