Sunteți pe pagina 1din 2

Transact-SQL User's Guide (Spanish)

Page 1 of 2

Transact-SQL User's Guide (Spanish)

Reglas asociadas a procedimientos almacenados


Algunas reglas adicionales para la creacin de procedimientos almacenados son: Las instrucciones create procedure no pueden combinarse con otras instrucciones en un solo lote. La definicin create procedure propiamente dicha puede incluir cualquier nmero y tipo de instruccin SQL, con la excepcin de use y estas instrucciones create : create view create default create rule create trigger create procedure Se pueden crear otros objetos de base de datos dentro de un procedimiento. Es posible hacer referencia a un objeto creado en el mismo procedimiento, siempre que se cree antes de hacer referencia a l. La instruccin create del objeto debe ocupar la primera posicin en el orden real de las instrucciones del procedimiento. En un procedimiento almacenado, no es posible crear un objeto, omitirlo y despus crear otro con el mismo nombre. SQL Server crea los objetos definidos en un procedimiento almacenado cuando el procedimiento se ejecuta, no cuando se compila. Si ejecuta un procedimiento que llama a otro, el procedimiento llamado puede acceder a los objetos creados por el primer procedimiento. Se puede hacer referencia a tablas temporales dentro de un procedimiento. Si crea una tabla temporal dentro de un procedimiento, la tabla slo existe para ese procedimiento y desaparece al salir de ste. El nmero mximo de parmetros de un procedimiento almacenado es de 255. El nmero mximo de variables locales y globales de un procedimiento slo est limitado por la memoria disponible. Calificacin de nombres dentro de procedimientos Dentro de un procedimiento almacenado, los nombres de objeto utilizados con determinados comandos deben calificarse con el nombre del propietario del objeto si otros usuarios van a hacer uso del procedimiento almacenado. Estos comandos son: alter table , create table , drop table , truncate table , create index , drop index , update statistic s , dbcc . Los nombres de objeto usados con otras instrucciones, como select o insert , dentro de un procedimiento almacenado no necesitan estar calificados porque los nombres se resuelven cuando se compila el procedimiento. Por ejemplo, el usuario "mary" , que posee la tabla marytab , debera calificar el nombre de su tabla cuando se utilice con uno de estos comandos si quiere que otros usuarios puedan ejecutar el procedimiento donde se emplea la tabla:

http://manuals.sybase.com/onlinebooks/group-asarc/svs11001/tsqlsp/@Generic__Boo... 18/04/2010

Transact-SQL User's Guide (Spanish)

Page 2 of 2

create procedure p1 as create index marytab_ind on mary.marytab(col1)

El motivo de esta regla es que los nombres de objeto se resuelven cuando se ejecuta el procedimiento. Si marytab no est calificada y el usuario " john" intenta ejecutar el procedimiento, SQL Server busca una tabla llamada marytab propiedad de John. El ejemplo anterior muestra el uso correcto: indica a SQL Server que busque una tabla llamada marytab propiedad de Mary.

http://manuals.sybase.com/onlinebooks/group-asarc/svs11001/tsqlsp/@Generic__Boo... 18/04/2010

S-ar putea să vă placă și