Anda di halaman 1dari 16

UNIVERSIDAD NACIONAL DE INGENIERA

FACULTAD DE INGENIERA GEOLGICA, MINERA Y


METALRGICA
ESCUELA PROFESIONAL DE INGENIERA DE MINAS

PROCEDIMIENTOS DE ALMACENADO (MOTOR DE


BASE DE DATOS)
CURSO: SISTEMA DE PROCESAMIENTO DE DATOS

ROJAS MANTAR, PEDRO ELMER


Cdigo: 20132078A

DOCENTE: ADOLFO CHAVEZ VALDIVIA


Lima - Per
Julio 2016

PROCEDIMIENTOS DE ALMACENADO (MOTOR DE


BASE DE DATOS)

Un procedimiento almacenado de SQL Server es un grupo de una o varias instrucciones


Transact-SQL o una referencia a un mtodo de Common Runtime Language (CLR) de
Microsoft .NET Framework. Los procedimientos se asemejan a las construcciones de otros
lenguajes de programacin, porque pueden:
Aceptar parmetros de entrada y devolver varios valores en forma de parmetros de salida al
programa que realiza la llamada.
Contener instrucciones de programacin que realicen operaciones en la base de datos. Entre
otras, pueden contener llamadas a otros procedimientos.
Devolver un valor de estado a un programa que realiza una llamada para indicar si la operacin
se ha realizado correctamente o se han producido errores, y el motivo de estos.
Ventajas de usar procedimientos almacenados
En la siguiente lista se describen algunas de las ventajas que brinda el uso de procedimientos.
Mayor seguridad:
Varios usuarios y programas cliente pueden realizar operaciones en los objetos de base de datos
subyacentes a travs de un procedimiento, aunque los usuarios y los programas no tengan
permisos directos sobre esos objetos subyacentes. El procedimiento controla qu procesos y
actividades se llevan a cabo y protege los objetos de base de datos subyacentes. Esto elimina la
necesidad de conceder permisos en cada nivel de objetos y simplifica los niveles de seguridad.

La clusula EXECUTE AS puede especificarse en la instruccin CREATE PROCEDURE para


habilitar la suplantacin de otro usuario o para permitir que los usuarios o las aplicaciones
puedan realizar ciertas actividades en la base de datos sin necesidad de contar con permisos
directos sobre los objetos y comandos subyacentes. Por ejemplo, algunas acciones como
TRUNCATE TABLE no tienen permisos que se puedan conceder. Para poder ejecutar
TRUNCATE TABLE, el usuario debe tener permisos ALTER en la tabla especificada. Puede
que la concesin de permisos ALTER a un usuario en una tabla no sea lo ideal, pues en realidad
el usuario tendr permisos muy superiores a la posibilidad de truncar una tabla. Si se incorpora
la instruccin TRUNCATE TABLE en un mdulo y se especifica la ejecucin del mdulo como

un usuario con permisos para modificar la tabla, se pueden ampliar los permisos para truncar la
tabla al usuario al que se concedan permisos EXECUTE para el mdulo.
Al llamar a un procedimiento a travs de la red, solo est visible la llamada que va a ejecutar el
procedimiento. Por lo tanto, los usuarios malintencionados no pueden ver los nombres de los
objetos de base de datos y tabla, incrustados en sus propias instrucciones Transact-SQL, ni
buscar datos crticos.
El uso de parmetros de procedimientos ayuda a protegerse contra ataques por inyeccin de
cdigo SQL. Dado que la entrada de parmetros se trata como un valor literal y no como cdigo
ejecutable, resulta ms difcil para un atacante insertar un comando en la instruccin TransactSQL del procedimiento y comprometer la seguridad.
Los procedimientos pueden cifrarse, lo que ayuda a ofuscar el cdigo fuente. Para obtener ms
informacin, vea Cifrado de SQL Server.
Reutilizacin del cdigo
El cdigo de cualquier operacin de base de datos redundante resulta un candidato perfecto para
la encapsulacin de procedimientos. De este modo, se elimina la necesidad de escribir de nuevo
el mismo cdigo, se reducen las inconsistencias de cdigo y se permite que cualquier usuario o
aplicacin que cuente con los permisos necesarios pueda acceder al cdigo y ejecutarlo.
Mantenimiento ms sencillo
Cuando las aplicaciones cliente llaman a procedimientos y mantienen las operaciones de base de
datos en la capa de datos, solo deben actualizarse los cambios de los procesos en la base de
datos subyacente. El nivel de aplicacin permanece independiente y no tiene que tener
conocimiento sobre los cambios realizados en los diseos, las relaciones o los procesos de la
base de datos.
Rendimiento mejorado
De forma predeterminada, un procedimiento se compila la primera vez que se ejecuta y crea un
plan de ejecucin que vuelve a usarse en posteriores ejecuciones. Como el procesador de
consultas no tiene que crear un nuevo plan, normalmente necesita menos tiempo para procesar
el procedimiento.
Si ha habido cambios importantes en las tablas o datos a los que se hace referencia en el
procedimiento, el plan pre compilado podra hacer que el procedimiento se ejecutara con mayor
lentitud. En este caso, volver a crear el procedimiento y forzar un nuevo plan de ejecucin
puede mejorar el rendimiento.
TIPOS DE PROCEDIMIENTOS ALMACENADOS
Definidos por el usuario:
Un procedimiento definido por el usuario se puede crear en una base de datos definida por el
usuario o en todas las bases de datos del sistema excepto en la base de datos Resource. El
procedimiento se puede desarrollar en Transact-SQL o como una referencia a un mtodo de
Common Runtime Language (CLR) de Microsoft .NET Framework.
Temporales

Los procedimientos temporales son una forma de procedimientos definidos por el usuario. Los
procedimientos temporales son iguales que los procedimientos permanentes salvo porque se
almacenan en tempdb. Hay dos tipos de procedimientos temporales: locales y globales. Se
diferencian entre s por los nombres, la visibilidad y la disponibilidad. Los procedimientos
temporales locales tienen como primer carcter de sus nombres un solo signo de nmero (#);
solo son visibles en la conexin actual del usuario y se eliminan cuando se cierra la conexin.

Los procedimientos temporales globales presentan dos signos de nmero (##) antes del nombre;
son visibles para cualquier usuario despus de su creacin y se eliminan al final de la ltima
sesin en la que se usa el procedimiento.
Sistema
Los procedimientos del sistema se incluyen con SQL Server. Estn almacenados fsicamente en
la base de datos interna y oculta Resource y se muestran de forma lgica en el esquema sys de
cada base de datos definida por el sistema y por el usuario. Adems, la base de
datos msdb tambin contiene procedimientos almacenados del sistema en el esquema dbo que
se usan para programar alertas y trabajos. Dado que los procedimientos del sistema empiezan
con el prefijo sp_, le recomendamos que no use este prefijo cuando asigne un nombre a los
procedimientos definidos por el usuario. Para obtener una lista completa de los procedimientos
del sistema, vea Procedimientos almacenados del sistema (Transact-SQL).
SQL Server admite los procedimientos del sistema que proporcionan una interfaz de SQL
Server a los programas externos para varias actividades de mantenimiento. Estos
procedimientos extendidos usan el prefijo xp_. Para obtener una lista completa de los
procedimientos extendidos, vea Procedimientos almacenados extendidos generales (TransactSQL).
Extendidos definidos por el usuario:
Los procedimientos extendidos permiten crear rutinas externas en un lenguaje de programacin
como C. Estos procedimientos son archivos DLL que una instancia de SQL Server puede cargar
y ejecutar dinmicamente

COMO CREAR UN PROCEDIMIENTO ALMACENADO


1

I.

En este tema se describe cmo se crea un procedimiento almacenado de


Transact-SQL mediante SQL Server Management Studio y la instruccin
CREATE PROCEDURE de Transact-SQL.
1. Permisos
Requiere el permiso CREATE PROCEDURE en la base de datos y el permiso
ALTER en el esquema en el que se va a crear el procedimiento.
2. Crear un procedimiento almacenado
Puede usar cualquiera de los siguientes medios:
USAR SQL SERVER MANAGEMENT STUDIO
Para crear un procedimiento en el Explorador de objetos
a) En el Explorador de objetos, conctese a una instancia del Motor
de base de datos y expndala.
b) Expanda Bases de datos, la base de datos
**AdventureWorks2012**
y, por ltimo, Programacin.
c) Haga
clic
con
el
botn
secundario
en Procedimientos
almacenados y, a continuacin, haga clic en Nuevo procedimiento
almacenado.
d) En el men Consulta, haga clic en Especificar valores para
parmetros de plantilla.
e) En el cuadro de dilogo Especificar valores para parmetros de
plantilla, especifique los siguientes valores para los parmetros
mostrados.
Parmetro

Valor

Autor

Su nombre.

Create Date

La fecha de hoy.

Descripcin

Devuelve datos de empleado.

Procedure_name

HumanResources.uspGetEmploye
esTest
@LastName

@Param1
@Datatype_For_Para
m1
Default_Value_For_Pa
ram1
@Param2

nvarchar(50)

@Datatype_For_Para
m2
Default_Value_For_Pa
ram2

nvarchar(50)

NULL
@FirstName

NULL

f) Haga clic en aceptar


g) En el Editor de consultas, reemplace la instruccin SELECT por la
siguiente instruccin:

h) Para probar la sintaxis, en el men Consulta, haga clic en Analizar.


Si se devuelve un mensaje de error, compare las instrucciones con la
informacin anterior y corrija lo que sea necesario.
i) Para crear el procedimiento, en el men Consulta, haga clic
en Ejecutar. El procedimiento se crea como un objeto de la base de
datos.
j) Para ver el procedimiento que aparece en el Explorador de objetos,
haga
clic
con
el
botn
secundario
en Procedimientos
almacenados y seleccione Actualizar.
k) Para ejecutar el procedimiento, en el Explorador de objetos, haga clic
con el botn secundario en el nombre del procedimiento
almacenadoHumanResources.uspGetEmployeesTest y
seleccione Ejecutar procedimiento almacenado.
l) En la ventana Ejecutar procedimiento, escriba Margheim como
valor del parmetro @LastName y Diane como valor del parmetro
@FirstName.
Usar Transact-SQL

Para crear un procedimiento en el Editor de consultas

a) En el Explorador de objetos, conctese a una instancia del Motor


de base de datos.
b) En el men Archivo, haga clic en Nueva consulta.
c) Copie y pegue el siguiente ejemplo en la ventana de consulta y haga
clic en Ejecutar. En este ejemplo se crea el mismo procedimiento
almacenado que antes con otro nombre diferente.

USE AdventureWorks2012;
GO
CREATE PROCEDURE HumanResources.uspGetEmployeesTest2
@LastName nvarchar(50),
@FirstName nvarchar(50)
AS

SET NOCOUNT ON;


SELECT FirstName, LastName, Department
FROM HumanResources.vEmployeeDepartmentHistory
WHERE FirstName = @FirstName AND LastName = @LastName
AND EndDate IS NULL;
GO

d) Para ejecutar el procedimiento, copie y pegue el ejemplo siguiente en


una nueva ventana de consulta y haga clic en Ejecutar. Observe que
se muestran diferentes mtodos para especificar los valores de
parmetro.

EXECUTE HumanResources.uspGetEmployeesTest2 N'Ackerman', N'Pilar';


-- Or
EXEC HumanResources.uspGetEmployeesTest2 @LastName = N'Ackerman',
@FirstName = N'Pilar';
GO
-- Or
EXECUTE HumanResources.uspGetEmployeesTest2 @FirstName = N'Pilar',
@LastName = N'Ackerman';
GO

II.

MODIFICAR UN PROCEDIMIENTO ALMACENADO

En este tema se describe cmo modificar un procedimiento almacenado SQL


Server 2014 mediante SQL Server Management Studio o Transact-SQL.
Antes de comenzar
Limitaciones y restricciones
Los procedimientos almacenados de Transact-SQL no se pueden modificar
para que sean procedimientos almacenados CLR y viceversa.
Si anteriormente se cre la definicin de procedimiento mediante WITH
ENCRYPTION o WITH RECOMPILE, estas opciones solo se habilitan si se
incluyen en la instruccin ALTER PROCEDURE.
Seguridad
Permisos
Es necesario el permiso ALTER PROCEDURE en el procedimiento.
Cmo modificar un procedimiento almacenado
Puede usar cualquiera de los siguientes medios:
USAR SQL SERVER MANAGEMENT STUDIO

Para modificar un procedimiento en Management Studio:

a) En el Explorador de objetos, conctese a una instancia de Motor de


base de datos y expndala.
b) Expanda Bases de datos, expanda la base de datos a la que
pertenece
el
procedimiento
y,
a
continuacin,
expanda Programacin.
c) Expanda Procedimientos almacenados, haga clic con el botn
secundario en el procedimiento que desea modificar y, a
continuacin, haga clic en Modificar.
d) Modifique el texto del procedimiento almacenado.
e) Para probar la sintaxis, en el men Consulta, haga clic en Analizar.
f) Para guardar las modificaciones en la definicin de procedimiento, en
el men Consulta, haga clic en Ejecutar.
g) Para guardar la definicin de procedimiento actualizada como un
script de Transact-SQL, en el men Archivo, haga clic en Guardar
como. Acepte el nombre de archivo o reemplcelo por un nombre
nuevo y, a continuacin, haga clic en Guardar.
USAR TRANSACT-SQL
Para modificar un procedimiento en el Editor de consultas
a) En el Explorador de objetos, conctese a una instancia del Motor
de base de datos y expndala.
b) Expanda Bases de datos, expanda la base de datos a la que
pertenece el procedimiento. O bien, en la barra de herramientas,
seleccione la base de datos en la lista de bases de datos disponibles.
En este ejemplo, seleccione la base de datos
**AdventureWorks2012**

c) En el men Archivo, haga clic en Nueva consulta.


d) Copie y pegue el ejemplo siguiente en el editor de consultas. El
ejemplo crea el procedimiento uspVendorAllInfo, que devuelve los
nombres de todos los proveedores en la base de datos Adventure
Works Cycles, los productos que suministran, su solvencia y su
disponibilidad.

IF OBJECT_ID ( 'Purchasing.uspVendorAllInfo', 'P' ) IS NOT NULL


DROP PROCEDURE Purchasing.uspVendorAllInfo;
GO
CREATE PROCEDURE Purchasing.uspVendorAllInfo
WITH EXECUTE AS CALLER
AS
SET NOCOUNT ON;
SELECT v.Name AS Vendor, p.Name AS 'Product name',
v.CreditRating AS 'Rating',
v.ActiveFlag AS Availability
FROM Purchasing.Vendor v
INNER JOIN Purchasing.ProductVendor pv
ON v.BusinessEntityID = pv.BusinessEntityID
INNER JOIN Production.Product p
ON pv.ProductID = p.ProductID

ORDER BY v.Name ASC;


GO

e) En el men Archivo, haga clic en Nueva consulta.


f) Copie y pegue el ejemplo siguiente en el editor de consultas. El
ejemplo modifica el procedimiento uspVendorAllInfo. La clusula
EXECUTE AS CALLER se quita y el cuerpo del procedimiento se
modifica para devolver solo los proveedores que proporcionan el
producto
especificado.
Las
funciones LEFT y CASE permiten
personalizar la apariencia del conjunto de resultados.
ALTER PROCEDURE Purchasing.uspVendorAllInfo
@Product varchar(25)
AS
SET NOCOUNT ON;
SELECT LEFT(v.Name, 25) AS Vendor, LEFT(p.Name, 25) AS 'Product name',
'Rating' = CASE v.CreditRating
WHEN 1 THEN 'Superior'
WHEN 2 THEN 'Excellent'
WHEN 3 THEN 'Above average'
WHEN 4 THEN 'Average'
WHEN 5 THEN 'Below average'
ELSE 'No rating'
END
, Availability = CASE v.ActiveFlag
WHEN 1 THEN 'Yes'
ELSE 'No'
END
FROM Purchasing.Vendor AS v
INNER JOIN Purchasing.ProductVendor AS pv
ON v.BusinessEntityID = pv.BusinessEntityID
INNER JOIN Production.Product AS p
ON pv.ProductID = p.ProductID
WHERE p.Name LIKE @Product
ORDER BY v.Name ASC;
GO

g) Para guardar las modificaciones en la definicin de procedimiento, en


el men Consulta, haga clic en Ejecutar.
h) Para guardar la definicin de procedimiento actualizada como un
script de Transact-SQL, en el men Archivo, haga clic en Guardar
como. Acepte el nombre de archivo o reemplcelo por un nombre
nuevo y, a continuacin, haga clic en Guardar.
i) Para ejecutar el procedimiento almacenado modificado, ejecute el
siguiente ejemplo.
EXEC Purchasing.uspVendorAllInfo N'LL Crankarm';
GO

ELIMINAR UN PROCEDIMIENTO ALMACENADO

III.

En este tema se describe cmo eliminar un procedimiento almacenado SQL


Server 2014 mediante SQL Server Management Studio o Transact-SQL.
Antes de comenzar
Limitaciones y restricciones
Eliminar un procedimiento puede hacer que los objetos y scripts
dependientes produzcan un error cuando los objetos y scripts no se han
actualizado para reflejar la eliminacin del procedimiento. No obstante, si se
crea un nuevo procedimiento con el mismo nombre y los mismos
parmetros para reemplazar al que se elimin, los objetos que hagan
referencia a l antiguo se procesarn correctamente. Para obtener ms
informacin
Seguridad:
Permisos
Requiere el permiso ALTER en el esquema al que pertenece el procedimiento
o el permiso CONTROL en el procedimiento.
Cmo eliminar un procedimiento almacenado
Puede usar cualquiera de los siguientes medios:
USAR SQL SERVER MANAGEMENT STUDIO
Para eliminar un procedimiento en el Explorador de objetos
a) En el Explorador de objetos, conctese a una instancia de Motor de
base de datos y expndala.
b) Expanda Bases de datos, expanda la base de datos a la que
pertenece
el
procedimiento
y,
a
continuacin,
expanda Programacin.
c) Expanda Procedimientos almacenados, haga clic con el botn
secundario en el procedimiento que desee eliminar y, a continuacin,
haga clic en Eliminar.
d) Para ver los objetos que dependen del procedimiento, haga clic
en Mostrar dependencias.
e) Confirme que haya seleccionado el procedimiento correcto y haga clic
en Aceptar.
f) Quite las referencias al procedimiento de cualquier objeto y script
dependientes.
USAR TRANSACT-SQL
Para eliminar un procedimiento en el Editor de consultas
a) En el Explorador de objetos, conctese a una instancia del Motor
de base de datos y expndala.

b) Expanda Bases de datos, expanda la base de datos a la que


pertenece el procedimiento o bien, en la barra de herramientas,
seleccione la base de datos en la lista de bases de datos disponibles.

c) En el men Archivo, haga clic en Nueva consulta.


d) Obtenga el nombre del procedimiento almacenado para quitar en la
base de datos actual. En el Explorador de objetos,
expanda
Programacin y, a continuacin, Procedimientos almacenados.
Como alternativa, en el editor de consultas, ejecute la siguiente
instruccin.
Transact-SQL
SELECT name AS procedure_name
,SCHEMA_NAME(schema_id) AS schema_name
,type_desc
,create_date
,modify_date
FROM sys.procedures;

e) Copie y pegue el ejemplo siguiente en el editor de consultas e inserte


un procedimiento almacenado para eliminarlo de la base de datos
actual.
Transact-SQL
DROP PROCEDURE <stored procedure name>;
GO

f) Quite las referencias al procedimiento de cualquier objeto y script


dependientes.
IV.

EJECUTAR UN PROCEDIMIENTO ALMACENADO

En este tema se describe cmo ejecutar un procedimiento almacenado en


SQL Server 2014 mediante SQL Server Management Studio o Transact-SQL.
Hay dos formas diferentes de ejecutar un procedimiento almacenado. El
primer mtodo y ms comn es que una aplicacin o un usuario llame al
procedimiento. El segundo mtodo consiste en establecer el procedimiento
para que se ejecute automticamente cuando se inicie una instancia de SQL
Server. Cuando una aplicacin o un usuario llama a un procedimiento, la
palabra clave EXECUTE o EXEC de Transact-SQL se indica explcitamente en
la llamada. Como alternativa, se puede llamar al procedimiento y ejecutarlo
sin la palabra clave si el procedimiento es la primera instruccin del lote de
Transact-SQL.
En este tema
Antes de empezar:
Limitaciones y restricciones
Recomendaciones
Seguridad

Para ejecutar un procedimiento almacenado, usando:

SQL Server Management Studio


Transact-SQL

Antes de comenzar

Limitaciones y restricciones
La intercalacin de base de datos de llamada se usa al comparar los
nombres de los procedimientos del sistema. Por tanto, en las llamadas a
procedimientos use siempre el modelo exacto de maysculas y minsculas
de los nombres de procedimientos del sistema. Por ejemplo, este cdigo
generar un error si se ejecuta en el contexto de una base de datos que
tenga una intercalacin que distinga maysculas de minsculas:
Transact-SQL
EXEC SP_heLP; -- Will fail to resolve because SP_heLP does not equal sp_help

Para mostrar los nombres exactos de los procedimientos del sistema,


consulte las vistas de catlogo sys.system_objects ysys.system_parameters.
Si un procedimiento definido por el usuario tiene el mismo nombre que un
procedimiento del sistema, puede que el procedimiento definido por el
usuario no se ejecute nunca.
Recomendaciones
Ejecutar procedimientos almacenados del sistema
Los procedimientos del sistema comienzan con el prefijo sp_. Puesto

que aparecen lgicamente en todas las bases de datos definidas por


el usuario y por el sistema, se pueden ejecutar desde cualquier base
de datos sin necesidad de que calificar totalmente el nombre del
procedimiento. Sin embargo, se recomienda calificar como de
esquema todos los nombres de procedimientos del sistema con el
nombre de esquema sys para evitar conflictos de nombres. En el
ejemplo siguiente se muestra el mtodo recomendado para llamar a
un procedimiento del sistema.
Transact-SQL
EXEC sys.sp_who;

Ejecutar procedimientos almacenados definidos por el usuario

Al ejecutar un procedimiento definido por el usuario, se recomienda calificar


el nombre del procedimiento con el nombre de esquema. Esta prctica
proporciona un pequeo aumento del rendimiento porque el Motor de base

de datos no tiene que buscar en varios esquemas. Tambin evita la


ejecucin del procedimiento incorrecto si una base de datos tiene
procedimientos con el mismo nombre en varios esquemas.
En el ejemplo siguiente se muestra el mtodo recomendado para ejecutar
un procedimiento definido por el usuario. Observe que el procedimiento
acepta un parmetro de entrada. Para obtener informacin sobre cmo
especificar parmetros de entrada y salida.
Transact-SQL
USE AdventureWorks2012;
GO
EXEC dbo.uspGetEmployeeManagers @BusinessEntityID = 50;

O bien
Transact-SQL
EXEC AdventureWorks2012.dbo.uspGetEmployeeManagers 50;
GO

Si se especifica un procedimiento definido por el usuario no calificado, el


Motor de base de datos busca el procedimiento siguiendo este orden:
a) El esquema sys de la base de datos actual.
b) El esquema predeterminado del autor de la llamada si se ejecuta en
un lote o en SQL dinmico. O bien, si el nombre del procedimiento no
calificado aparece dentro del cuerpo de otra definicin de
procedimiento, a continuacin se busca en el esquema que contiene
este otro procedimiento.
c) El esquema dbo de la base de datos actual.
Ejecutar procedimientos almacenados automticamente

Los procedimientos marcados para su ejecucin automtica se ejecutan


cada vez que se inicia SQL Server y la base de datos maestra se recupera
durante ese proceso de inicio. Puede ser til configurar procedimientos para
que se ejecuten automticamente a la hora de realizar operaciones de
mantenimiento de bases de datos o para tener procedimientos que se
ejecutan continuamente como procesos en segundo plano. Otra forma de
usar la ejecucin automtica consiste en que el procedimiento realice tareas
del sistema o de mantenimiento en tempdb, como crear una tabla temporal
global. De este modo, se garantiza que esa tabla temporal existir siempre
cuando se vuelva a crear tempdb durante el inicio de SQL Server.
Un procedimiento que se ejecuta automticamente funciona con los mismos
permisos que los miembros del rol fijo de servidor sysadmin. Todos los
mensajes de error generados por el procedimiento se escriben en el registro
de errores de SQL Server.

No existe lmite en cuanto al nmero de procedimientos de inicio que se


pueden crear, aunque debe tener en cuenta que cada uno consume un
subproceso de trabajo mientras se ejecuta. Si es necesario ejecutar
mltiples procedimientos en el inicio, pero no es necesario que se ejecuten

en paralelo, haga que un procedimiento sea el procedimiento de inicio y que


ste llame a los restantes. De este modo, solo se utiliza un subproceso de
trabajo.
Establecer, borrar y controlar la ejecucin automtica
Solo el administrador del sistema (sa) puede marcar un procedimiento para
que se ejecute automticamente. Adems, el procedimiento debe
encontrarse en la base de datos maestra, pertenecer a sa y no incluir
parmetros de entrada ni de salida.
Utilice sp_procoption para:
a) Designar un procedimiento existente como procedimiento de inicio.
b) Detener la ejecucin de un procedimiento al iniciar SQL Server.
Seguridad
Para obtener ms informacin, consulte EXECUTE
SQL) y EXECUTE AS (clusula de Transact-SQL).

AS

(Transact-

Permisos
Para obtener ms informacin, vea la seccin "Permisos" de EXECUTE
(Transact-SQL).
USAR SQL SERVER MANAGEMENT STUDIO
Para ejecutar un procedimiento almacenado
a) En el Explorador de objetos, conctese a una instancia de Motor de
base de datos de SQL Server, expndala y, a continuacin,
expanda Bases de datos.
b) Expanda la base de datos que desee, expanda Programacin y, a
continuacin, expanda Procedimientos almacenados.
c) Haga clic con el botn secundario en el procedimiento almacenado
definido por el usuario que desee y, a continuacin, haga clic
en Ejecutar procedimiento almacenado.
d) En el cuadro de dilogo Ejecutar procedimiento, especifique un
valor para cada parmetro y si debe pasar o no un valor NULL.
Parmetro:
Indica el nombre del parmetro.
Tipo de datos:
Indica el tipo de datos del parmetro.
Parmetro de salida:
Indica si se trata de un parmetro de salida.

Pasar valor NULL:

Pase un valor NULL como valor del parmetro.


Valor:
Escriba el valor del parmetro cuando llame al procedimiento.
e) Para ejecutar el procedimiento almacenado, haga clic en Aceptar.
Usar Transact-SQL
Para ejecutar un procedimiento almacenado
a) Conctese con el Motor de base de datos.
b) En la barra Estndar, haga clic en Nueva consulta.
c) Copie y pegue el siguiente ejemplo en la ventana de consulta y haga
clic en Ejecutar. En este ejemplo se muestra cmo ejecutar un
procedimiento almacenado que espera un parmetro. En el ejemplo
se
ejecuta
el
procedimiento
Almacenado
uspGetEmployeeManagers con
el
valor 6 como
parmetro @EmployeeID.
Transact-SQL
USE AdventureWorks2012;
GO
EXEC dbo.uspGetEmployeeManagers 6;
GO

Para establecer o
automticamente

borrar

un

procedimiento

para

que

se

ejecute

a) Conctese con el Motor de base de datos.


b) En la barra Estndar, haga clic en Nueva consulta
c) Copie y pegue el siguiente ejemplo en la ventana de consulta y haga
clic
en Ejecutar.
En
este
ejemplo
se
muestra
cmo
usar sp_procoption para establecer un procedimiento de manera que
se ejecute automticamente.

Transact-SQL
USE AdventureWorks2012;
GO
EXEC sp_procoption @ProcName = '<procedure name>'
, @OptionName = ] 'startup'
, @OptionValue = 'on';

Para que un procedimiento deje de ejecutarse automticamente


a) Conctese con el Motor de base de datos.

b) En la barra Estndar, haga clic en Nueva consulta.


c) Copie y pegue el siguiente ejemplo en la ventana de consulta y haga
clic
en Ejecutar.
En
este
ejemplo
se
muestra
cmo

usar sp_procoption para que un procedimiento deje de ejecutarse


automticamente.
Transact-SQL

USE AdventureWorks2012;
GO
EXEC sp_procoption @ProcName = '<procedure name>'
, @OptionValue = 'off';

Anda mungkin juga menyukai