Alter Procedure

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 11

ALTER PROCEDURE (Transact-SQL) Modifica un procedimiento creado anteriormente por la ejecucin de la instruccin CREATE PROCEDURE en SQL Server 2008

R2. Sintaxis --Transact-SQL Stored Procedure Syntax ALTER { PROC | PROCEDURE } [schema_name.] procedure_name [ ;number ] [ { @parameter [ type_schema_name. ] data_type } [ VARYING ] [ = default ] [ OUT | OUTPUT ] [READONLY] ] [ ,...n ] [ WITH <procedure_option> [ ,...n ] ] [ FOR REPLICATION ] AS { [ BEGIN ] sql_statement [;] [ ...n ] [ END ] } [;] <procedure_option> ::= [ ENCRYPTION ] [ RECOMPILE ] [ EXECUTE AS Clause ] --CLR Stored Procedure Syntax ALTER { PROC | PROCEDURE } [schema_name.] procedure_name [ ;number ] [ { @parameter [ type_schema_name. ] data_type } [ = default ] [ OUT | OUTPUT ] [READONLY] ] [ ,...n ] [ WITH EXECUTE AS Clause ] AS { EXTERNAL NAME assembly_name.class_name.method_name } [;] Argumentos schema_name El nombre del esquema al que pertenece el procedimiento. procedure_name El nombre del procedimiento que se va a cambiar. Los nombres de los procedimientos se deben ajustar a las reglas para los identificadores. ; number Entero opcional existente que se usa para agrupar los procedimientos del mismo nombre, de forma que puedan quitarse juntos mediante una sola instruccin DROP PROCEDURE. or favor note que lo anterior no es una lista exhaustiva. Hay otras instancias donde ALTER TABLE se utiliza para cambiar la estructura de la tabla, tales como cambiar la especificacin de la clave primaria o agregar una restriccin nica para una columna. La sintaxis SQL para ALTER TABLE es ALTER TABLE "nombre_tabla" [modificar especificacin] [modificar especificacin] depende del tipo de modificacin que deseamos realizar. Para los usos mencionados anteriormente, las instrucciones [modificar especificacin] son: Agregar una columna: ADD columna 1 tipos de datos para columna 1 Eliminar una columna: DROP columna 1 Cambiar el nombre de una columna: CHANGE nombre antiguo de la columna nuevo nombre de la columna tipos de datos para la nueva columna". Cambiar el tipo de datos para una columna: MODIFY columna 1 nuevo tipo de datos Recorramos ejemplos para cada uno de lo anteriormente mencionado, utilizando la tabla cliente creada en la seccin CREATE TABLE, il convient de se reporter aux exemples mentionns cidessus. Tabla customer

Column Name Data Type First_Name Last_Name Address City Country char(50) char(50) char(50) char(50) char(25)

Birth_Date date Primero, deseamos agregar una columna denominada Gender a esta tabla. Para hacerlo, ingresamos, ALTER table customer add Gender char(1) Estructura de la tabla resultante: Table customer Column Name Data Type First_Name Last_Name Address City Country Birth_Date char(50) char(50) char(50) char(50) char(25) date

Gender char(1) Luego, deseamos renombrar Address" a Addr. Para hacerlo, ingresamos, Las tablas son la estructura bsica donde se almacena la informacin en la base de datos. Dado que en la mayora de los casos, no hay forma de que el proveedor de base de datos sepa con antelacin cuales son sus necesidades de almacenamiento de datos, es probable que necesite crear tablas en la base de datos usted mismo. Muchas herramientas de base de datos le permiten crear tablas sin ingresar SQL, pero debido a que las tablas son los contenedores de toda la informacin, es importante incluir la sintaxis CREATE TABLE en esta gua de referencia. Antes de sumergirnos en la sintaxis SQL para CREATE TABLE, es una buena idea comprender lo que se incluye en una tabla. Las tablas se dividen en filas y columnas. Cada fila representa una parte de los datos, y cada columna puede pensarse como la representacin de un componente de aquella parte de los datos. Entonces, por ejemplo, si tenemos una tabla para registrar la informacin del cliente, las columnas pueden incluir informacin tal como Primer Nombre, Apellido, Direccin, Ciudad, Pas, Fecha de Nacimiento y dems. Como resultado, cuando especificamos una tabla, incluimos los ttulos de columna y los tipos de datos para esta columna en particular. Entonces Qu son los tipos de datos? Generalmente, los datos se generan en formas variadas. Podra ser un entero (tal como 1), un nmero real (tal como 0,55), una lnea (tal como 'sql'), una fecha/expresin de tiempo (tal como '25-ene-2000 03:22:22'), o incluso en formato binario. Cuando especificamos una tabla, necesitamos especificar el tipo de dato asociado con cada columna (es decir, especificaremos que First_Name es de char(50) tipo lo que significa que es una lnea con 50 caracteres). Una cosa a tener en cuenta es que las diferentes bases de datos relacionales permiten diferentes tipos de datos, entonces es prudente consultar primero una referencia especfica de base de datos. La sintaxis SQL para CREATE TABLEes CREATE TABLE "nombre_tabla" ("columna 1" "tipo_de_datos_para_columna_1", "columna 2" "tipo_de_datos_para_columna_2",

... ) Entonces, si debemos crear una tabla para el cliente tal como se especifica anteriormente, ingresaramos CREATE TABLE customer (First_Name char(50), Last_Name char(50), Address char(50), City char(50), Country char(25), Birth_Date date) A veces, deseamos brindar un valor predeterminado a cada columna. Se utiliza un valor predeterminado cuando no especifica un valor de columna cuando ingresa datos a la tabla. Para establecer un valor predeterminado, agregue [valor] Predeterminado luego de la instruccin de tipo de datos. En el ejemplo anterior, si deseamos predeterminar una columna Address como Desconocida y Ciudad como Mumbai, ingresaramos

El mismo principio se aplica para la obtencin de datos desde una tabla de base de datos. Sin un ndice, el sistema de base de datos lee a travs de toda la tabla (este proceso se denomina escaneo de tabla) para localizar la informacin deseada. Con el ndice correcto en su lugar, el sistema de base de datos puede entonces primero dirigirse al ndice para encontrar de dnde obtener los datos, y luego dirigirse a dichas ubicaciones para obtener los datos necesarios. Esto es mucho ms rpido. Por lo tanto, generalmente se recomienda crear ndices en tablas. Un ndice puede cubrir una o ms columnas. La sintaxis general para la creacin de un ndice es: CREATE INDEX "NOMBRE_NDICE" ON "NOMBRE_TABLA" (NOMBRE_COLUMNA) Digamos que tenemos la siguiente tabla: Tabla Customer (First_Name char(50), Last_Name char(50), Address char(50), City char(50), Country char(25), Birth_Date date) Si deseamos crear un ndice tanto en Ciudad como en Pas, ingresaramos, CREATE INDEX IDX_CUSTOMER_LAST_NAME on CUSTOMER (Last_Name) Pour crer un index dans City et Country, il faut saisir CREATE INDEX IDX_CUSTOMER_LOCATION on CUSTOMER (City, Country) No hay una regla estricta respecto de cmo nombrar un ndice. El mtodo generalmente aceptado es colocar un prefijo, tal como IDX_, antes del nombre de un ndice para evitar la confusin con otros objetos de la base de datos. Tambin es una buena idea brindar informacin sobre qu tabla y columna(s) se utilizar el ndice.

Por favor note que la sintaxis exacta para CREATE INDEX puede ser distinta segn las diferentes bases de datos. Debera consultar con su manual de referencia de base de datos para obtener la sintaxis precisa. n SQL, hay fundamental y bsicamente dos formas para INSRER datos en una tabla: Una es insertar una fila por vez, y la otra es insertar filas mltiples por vez. Primero observemos como podemos INSRER datos a travs de una fila por vez: La sintaxis para insertar datos en una tabla mediante una fila por vez es la siguiente: INSERT INTO "nombre_tabla" ("columna1", "columna2", ...) VALUES ("valor1", "valor2", ...) Suponiendo que tenemos una taba con la siguiente estructura, Tabla Store_Information Column Name Data Type store_name Sales Date char(50) float datetime

y ahora deseamos insertar una fila adicional en la tabla que represente los datos de ventas para Los ngeles el 10 de enero de 1999. En ese da, este negocio tena $900 dlares estadounidenses en ventas. Por lo tanto, utilizaremos la siguiente escritura SQL: INSERT INTO Store_Information (store_name, Sales, Date) VALUES ('Los Angeles', 900, '10-Jan-1999') El segundo tipo de INSERT INTO nos permite insertar filas mltiples en una tabla. A diferencia del ejemplo anterior, donde insertamos una nica fila al especificar sus valores para todas las columnas, ahora utilizamos la instruccin SELECT para especificar los datos que deseamos insertar en la tabla. Si est pensando si esto significa que est utilizando informacin de otra tabla, est en lo correcto. La sintaxis es la siguiente: INSERT INTO "tabla1" ("columna1", "columna2", ...) SELECT "columna3", "columna4", ... FROM "tabla2" Note que esta es la forma ms simple. La instruccin entera puede contener fcilmente clusulas WHERE, GROUP BY, y HAVING, as como tambin uniones y alias. UPDATE "nombre_tabla" SET "columna_1" = [nuevo valor] WHERE {condicin} Por ejemplo, digamos que actualmente tenemos la tabla a continuacin: Tabla Store_Information store_name Sales Date

Los Angeles 1500 05-Jan-1999 San Diego Los Angeles Boston 250 07-Jan-1999 300 08-Jan-1999 700 08-Jan-1999

y notamos que las ventas para Los Angeles el 08/01/1999 es realmente de 500 en vez de 300 dlares estadounidenses, y que esa entrada en particular necesita actualizarse. Para hacerlo, utilizamos el siguiente SQL: UPDATE Store_Information SET Sales = 500 WHERE store_name = "Los Angeles" AND Date = "08-Jan-1999" La tabla resultante ser vera Tabla Store_Information store_name Sales San Diego Los Angeles Boston Date

Los Angeles 1500 05-Jan-1999 250 07-Jan-1999 500 08-Jan-1999 700 08-Jan-1999

En este caso, hay slo una fila que satisface la condicin en la clusula WHERE. Si hay mltiples filas que satisfacen la condicin, todas ellas se modificarn. Tambin es posible UPDATE mltiples columnas al mismo tiempo. La sintaxis en este caso se vera como la siguiente: UPDATE "nombre_tabla" SET colonne 1 = [[valor1], colonne 2 = [valor2] WHERE {condicin} ELETE FROM "nombre_tabla" WHERE {condicin} Es ms fcil utilizar un ejemplo. Por ejemplo, digamos que actualmente tenemos la siguiente tabla: Tabla Store_Information store_name Sales San Diego Los Angeles Boston Date

Los Angeles 1500 05-Jan-1999 250 07-Jan-1999 300 08-Jan-1999 700 08-Jan-1999

y decidimos no mantener ninguna informacin sobre Los ngeles en esta tabla. Para lograrlo, ingresamos el siguiente SQL: DELETE FROM Store_Information WHERE store_name = "Los Angeles" Ahora el contenido de la tabla se vera, Tabla Store_Information store_name Sales Date San Diego Boston 250 07-Jan-1999 700 08-Jan-1999

commit En el contexto de la Ciencia de la computacin y la gestin de datos, commit (accin de cometer) se refiere a la idea de consignar un conjunto de cambios "tentativos, o no permanentes". Un uso popular es al final de una transaccin de base de datos. Una sentencia COMMIT en SQL finaliza una transaccin de base de datos dentro de un sistema gestor de base de datos relacional (RDBMS) y pone visibles todos los cambios a otros usuarios. El formato general es emitir una sentencia BEGIN WORK, una o ms sentencias SQL, y entonces la sentencia COMMIT. Alternativamente, una sentencia ROLLBACK se puede emitir, la cual deshace todo el trabajo realizado desde que se emiti BEGIN WORK. Una sentencia COMMIT publicar cualquiera de los savepoints(puntos de recuperacin) existentes que puedan estar en uso. En terminos de transacciones, lo opuesto de commit para descartar los cambios "en tentativa" de una transaccin, es un rollback. Rollback Para el flag, vase Wikipedia:Reversores. En tecnologas de base de datos, un rollback es una operacin que devuelve a la base de datos a algn estado previo. Los Rollbacks son importantes para la integridad de la base de datos, a causa de que significan que la base de datos puede ser restaurada a una copia limpia incluso despus de que se han realizado operaciones errneas. Son cruciales para la recuperacin de crashes de un servidor de base de datos; realizando rollback(devuelto) cualquier transaccin que estuviera activa en el tiempo del crash, la base de datos es restaurada a un estado consistente. En SQL, ROLLBACK es un comando que causa que todos los cambios de datos desde la ltima sentencia BEGIN WORK, o START TRANSACTION sean descartados por el sistema de gestin de base de datos relacional (RDBMS), para que el estado de los datos sea "rolled back"(devuelto) a la forma en que estaba antes de que aquellos cambios tuvieran lugar.

Una sentencia ROLLBACK tambin publicar cualquier savepoint existente que puediera estar en uso. En muchos dialectos de SQL, ROLLBACKs son especficos de la conexin. Esto significa que si se hicieron dos conexiones a la misma base de datos, un ROLLBACK hecho sobre una conexin no afectar a cualesquiera otras conexiones. Esto es vital para el buen funcionamiento de la Concurrencia. La funcionalidad de rollback est normalmente implementada con un Log de transacciones, pero puede tambin estar implementada mediante control de concurrencia multiversin. TRUNCATE TABLE (Transact-SQL) Quita todas las filas de una tabla sin registrar las eliminaciones individuales de filas. TRUNCATE TABLE es similar a la instruccin DELETE sin una clusula WHERE; no obstante, TRUNCATE TABLE es ms rpida y utiliza menos recursos de registros de transacciones y de sistema. Convenciones de sintaxis de Transact-SQL Sintaxis TRUNCATE TABLE [ { database_name .[ schema_name ] . | schema_name . } ] table_name [;] Argumentos database_name Es el nombre de la base de datos. schema_name Es el nombre del esquema al que pertenece la tabla. table_name Es el nombre de la tabla que se va a truncar o de la que se van a quitar todas las filas. Notas En comparacin con la instruccin DELETE, TRUNCATE TABLE ofrece las siguientes ventajas: Se utiliza menos espacio del registro de transacciones. La instruccin DELETE quita una a una las filas y graba una entrada en el registro de transacciones por cada fila eliminada. TRUNCATE TABLE quita los datos al cancelar la asignacin de las pginas de datos utilizadas para almacenar los datos de la tabla y slo graba en el registro de transacciones las cancelaciones de asignacin de pginas. Por regla general, se utilizan menos bloqueos.

Si se ejecuta la instruccin DELETE con un bloqueo de fila, se bloquea cada fila de la tabla para su eliminacin. TRUNCATE TABLE siempre bloquea la tabla y la pgina, pero no cada fila. REVOKE (Transact-SQL) Quita un permiso concedido o denegado previamente. Convenciones de sintaxis de Transact-SQL Sintaxis Simplified syntax for REVOKE REVOKE [ GRANT OPTION FOR ] { [ ALL [ PRIVILEGES ] ] | permission [ ( column [ ,...n ] ) ] [ ,...n ] } [ ON [ class :: ] securable ] { TO | FROM } principal [ ,...n ] [ CASCADE] [ AS principal ] Argumentos GRANT OPTION FOR Indica que se revocar la capacidad de conceder el permiso especificado. Se requiere cuando se utiliza el argumento CASCADE. Importante Si la entidad de seguridad dispone del permiso especificado sin la opcin GRANT, se revocar el permiso. ALL Esta opcin no revoca todos los permisos posibles. Revocar ALL es equivalente a revocar los siguientes permisos. Si el elemento protegible es una base de datos, ALL significa BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE y CREATE VIEW. Si el elemento protegible es una funcin escalar, ALL significa EXECUTE y REFERENCES. Si el elemento protegible es una funcin con valores de tabla, ALL significa DELETE, INSERT, REFERENCES, SELECT y UPDATE. Si el elemento protegible es un procedimiento almacenado, ALL significa EXECUTE. Si el elemento protegible es una tabla, ALL significa DELETE, INSERT, REFERENCES, SELECT y UPDATE. Si el elemento protegible es una vista, ALL significa DELETE, INSERT, REFERENCES, SELECT y UPDATE. GRANT (Transact-SQL)

Concede permisos sobre un elemento protegible a una entidad de seguridad. El concepto general es GRANT <algn permiso> ON <algn objeto> TO <algn usuario, inicio de sesin o grupo>. Para obtener una explicacin general de los permisos, vea Permisos (motor de base de datos). Topic link icon Convenciones de sintaxis de Transact-SQL Sintaxis Simplified syntax for GRANT GRANT { ALL [ PRIVILEGES ] } | permission [ ( column [ ,...n ] ) ] [ ,...n ] [ ON [ class :: ] securable ] TO principal [ ,...n ] [ WITH GRANT OPTION ] [ AS principal ] Argumentos ALL Esta opcin est desusada y solo se mantiene por razones de compatibilidad con versiones anteriores. No concede todos los permisos posibles. Conceder ALL es equivalente a conceder los siguientes permisos. Si el elemento protegible es una base de datos, ALL significa BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE y CREATE VIEW. Si el elemento protegible es una funcin escalar, ALL significa EXECUTE y REFERENCES. Si el elemento protegible es una funcin con valores de tabla, ALL significa DELETE, INSERT, REFERENCES, SELECT y UPDATE. Si el elemento protegible es un procedimiento almacenado, ALL significa EXECUTE. Si el elemento protegible es una tabla, ALL significa DELETE, INSERT, REFERENCES, SELECT y UPDATE. Si el elemento protegible es una vista, ALL significa DELETE, INSERT, REFERENCES, SELECT y UPDATE. A veces podemos decidir que necesitamos eliminar una tabla en la base de datos por alguna razn. De hecho, sera problemtico si no podemos hacerlo ya que esto creara una pesadilla de mantenimiento para DBA. Afortunadamente, SQL nos permite hacerlo, ya que podemos utilizar el comando DROP TABLE. La sintaxis para DROP TABLE es DROP TABLE "nombre_tabla" Entonces, si deseamos eliminar una tabla denominada cliente que creamos en la seccin CREATE TABLE, simplemente ingresamos DROP TABLE customer. DROP INDEX (Transact-SQL) SQL Server 2008 R2 Otras versiones Nota importante Importante

La sintaxis definida en <drop_backward_compatible_index> dejar de incluirse en futuras versiones de MicrosoftSQL Server. Evite utilizar esta sintaxis en nuevos trabajos de programacin y tenga previsto modificar las aplicaciones que actualmente la utilizan. En su lugar, utilice la sintaxis especificada en <drop_relational_or_xml_index>. Los ndices XML no se pueden quitar utilizando la sintaxis compatible con versiones anteriores. Quita uno o ms ndices XML, filtrados, espaciales o relacionales de la base de datos actual. Puede quitar un ndice clster y mover la tabla resultante a otro grupo de archivos o esquema de particin en una sola transaccin especificando la opcin MOVE TO. La instruccin DROP INDEX no es aplicable a los ndices creados mediante la definicin de restricciones PRIMARY KEY y UNIQUE. Para quitar la restriccin y el ndice correspondiente, use ALTER TABLE con la clusula DROP CONSTRAINT. Topic link icon Convenciones de sintaxis de Transact-SQL Sintaxis DROP INDEX { <drop_relational_or_xml_or_spatial_index> [ ,...n ] | <drop_backward_compatible_index> [ ,...n ] } <drop_relational_or_xml_or_spatial_index> ::= index_name ON <object> [ WITH ( <drop_clustered_index_option> [ ,...n ] ) ] <drop_backward_compatible_index> ::= [ owner_name. ] table_or_view_name.index_name <object> ::= { [ database_name. [ schema_name ] . | schema_name. ] table_or_view_name } <drop_clustered_index_option> ::= { MAXDOP = max_degree_of_parallelism | ONLINE = { ON | OFF } | MOVE TO { partition_scheme_name ( column_name ) | filegroup_name | "default" } [ FILESTREAM_ON { partition_scheme_name | filestream_filegroup_name | "default" } ] } Argumentos index_name Es el nombre del ndice que se va a quitar. database_name Es el nombre de la base de datos.

schema_name Es el nombre del esquema al que pertenece la tabla o vista. table_or_view_name Es el nombre de la tabla o vista asociada al ndice. Los ndices espaciales slo se admiten en tablas. Para mostrar un informe de los ndices en un objeto, utilice la vista de catlogo sys.indexes. <drop_clustered_index_option> Controla las opciones de los ndices agrupados. Estas opciones no se pueden utilizar con otros tipos de ndices. MAXDOP = max_degree_of_parallelism

También podría gustarte