manual de refer en cia - sql server

34
Manual de referencia SQL SERVER

Upload: api-3735749

Post on 07-Jun-2015

1.010 views

Category:

Documents


6 download

DESCRIPTION

Manual rápido de sql server

TRANSCRIPT

Page 1: Manual de Refer en CIA - SQL Server

Manual de referencia

SQL SERVER

Page 2: Manual de Refer en CIA - SQL Server

INDICE

1. Bases de datos en Sql Server 2. Tablas 3. Relaciones entre tablas 4. Tipos de datos (T-SQL) 5. Reglas (Rules) 6. Valores predeterminados (Default) 7. Instrucción <<Alter table >> 8. Vistas 9. Procedimientos almacenados 10. Funciones (Roles) 11. Disparadores (Triggers) 12. Procedimientos sp_help 13. Procedimientos almacenados del sistema

Page 3: Manual de Refer en CIA - SQL Server

1. Bases de datos • Creación de base de datos. Create database nombre de la base de datos. • Ubicación de la base de datos Los archivos se almacenan físicamente en un fichero.mdf. También se crea un fichero log con extensión.ldf. • Eliminación de una base de datos Es posible eliminar más de una base de datos a la vez. drop database nombre_bd1 [,nombre_bd2.......]

2. Tablas • Definiciones completas de tabla create table [base de datos.[propietario].] nombre tabla ({columna tipo de datos[restricciones],.......}) ejemplo: /* ************************** table trabajos ***************************/ CREATE TABLE trabajos (trab_cod smallint IDENTITY(1,1) PRIMARY KEY CLUSTERED, desc_trab varchar(50) NOT NULL DEFAULT 'nueva opsition no formalizada', min_sub tinyint NOT NULL CHECK (min_sub >= 10), max_sub tinyint NOT NULL CHECK (max_sub <= 250) ) /* ***************** tabla empresas ******************** */ CREATE TABLE empresas ( empres_cod char(4) NOT NULL CONSTRAINT pkempres_cod PRIMARY KEY CHECK (empres_cod IN ('1389', '0736', '0877', '1622', '1756') OR empres_cod LIKE '99[0-9][0-9]'), nom_empres varchar(40) NULL, ciudad varchar(20) NULL, pais varchar(30) NULL DEFAULT('USA') )

Page 4: Manual de Refer en CIA - SQL Server

/* ************************* tabla empleados ************************* */ CREATE TABLE empleados (emp_cod char(15) CONSTRAINT pkemp_cod PRIMARY KEY CONSTRAINT ckemp_cod CHECK (emp_cod LIKE '[A-Z][A-Z][A-Z][1-9][0-9][0-9][0-9][0-9][FM]' or emp_cod LIKE '[A-Z]-[A-Z][1-9][0-9][0-9][0-9][0-9][FM]'), nombre varchar(20) NOT NULL, apellido varchar(30) NOT NULL, trab_cod smallint NOT NULL DEFAULT 1 REFERENCES trabajos(trab_cod), empres_cod char(4) NOT NULL DEFAULT ('9952') REFERENCES empresas(empres_cod), fecha_alta datetime NOT NULL DEFAULT (getdate()) ) • Utilizar una expresión para una columna calculada Este ejemplo ilustra el uso de una expresión ((columna1 + columna2)/2) para calcular la columna calculada mimedia. CREATE TABLE mitabla ( columna1 int, columna2 int, mimedia AS (columna1 + columna2)/2 ) • Modificación de tablas Alter table [base de datos.[propietario].]nombre tabla [add {columna tipo [restricciones],......}]

3. Relaciones Puede confirmar las columnas relacionadas y establecer las propiedades de una nueva relación. Esta tabla muestra la función de las opciones disponibles en el cuadro de diálogo Crear relación-> Opción Función Nombre de la relación Muestra el nombre asignado por el sistema a la relación. Para cambiar el nombre a la relación, escriba un nombre nuevo en el cuadro de texto. Tabla de la clave principal Muestra el nombre de la tabla de la clave principal de la relación, seguido de las columnas que forman la clave principal. Puede seleccionar distintas columnas para que coincidan con las columnas mostradas en la tabla de la clave externa. Tabla de la clave externa Muestra el nombre de la tabla de la clave externa en la relación, seguido de las columnas que forman la clave externa. Puede seleccionar distintas columnas para que coincidan con las columnas mostradas en la tabla de la clave principal.

Page 5: Manual de Refer en CIA - SQL Server

Comprobar datos existentes en la creación Aplica la restricción a los datos existentes de la tabla de la clave externa cuando se crea la relación. Si se activa esta casilla, un mensaje de error le notificará que algunos datos han infringido la restricción. Habilitar relación para INSERT y UPDATE Aplica la restricción cuando se agregan, eliminan o actualizan datos en la tabla de la clave externa con estas instrucciones. Habilitar relación para duplicación Copia la restricción cuando la tabla de la clave externa se copia a una base de datos distinta. Aceptar Crea la relación en el diagrama de la base de datos y establece las propiedades que ha seleccionado. Cancelar Borra la línea de la relación del diagrama de la base de datos. La relación no se crea.

4. Tipos de datos (T-SQL) En Microsoft® SQL Server™, cada columna, variable local, expresión y parámetro tiene un tipo de datos. El conjunto de tipos de datos suministrados por el sistema se muestra debajo. Los tipos de datos definidos por el usuario, que son alias de los tipos de datos suministrados por el sistema, pueden también definirse. Para obtener más información acerca de los tipos de datos definidos por el usuario. Enteros bit Datos enteros con valor 1 ó 0. int Datos enteros (números enteros) comprendidos entre -231 (-2.147.483.648) y 231 - 1 (2.147.483.647). smallint Datos enteros comprendidos entre 215 (-32.768) y 215 - 1 (32.767). tinyint Datos enteros comprendidos 0 y 255. Decimales y numéricos decimal Datos de precisión y escala numérica fijas comprendidos entre -1038 -1 y 1038 -1. numérico Sinónimo de decimal. money y smallmoney

Page 6: Manual de Refer en CIA - SQL Server

money Valores de moneda comprendidos entre -263 (-922.337.203.685.477,5808) y 263 - 1 (+922.337.203.685.477,5807), con una precisión de una diezmilésima de la unidad monetaria. smallmoney Valores de moneda comprendidos entre -214.748,3648 y +214.748,3647, con una precisión de una diezmilésima de la unidad monetaria. Numéricos con aproximación float Números con precisión de coma flotante comprendidos entre -1,79E + 308 y 1,79E + 308. real Números con precisión de coma flotante comprendidos entre -3,40E + 38 y 3,40E + 38. datetime y smalldatetime datetime Datos de fecha y hora comprendidos entre el 1 de enero de 1753 y el 31 de diciembre de 9999, con una precisión de un trescientosavos de segundo, o 3,33 milisegundos. smalldatetime Datos de fecha y hora comprendidos entre el 1 de enero de 1900 y el 6 de junio de 2079, con una precisión de un minuto. Numéricos cursor Una referencia a un cursor. timestamp Es un número único para toda la base de datos. uniqueidentifier Un identificador exclusivo global (GUID). Cadenas de caracteres char Datos de caracteres no Unicode de longitud fija con una longitud máxima de 8.000 caracteres. varchar Datos no Unicode de longitud variable con un máximo de 8.000 caracteres. text Datos no Unicode de longitud variable con una longitud máxima de 231 - 1 (1.147.483.647) caracteres.

Page 7: Manual de Refer en CIA - SQL Server

Cadenas de caracteres Unicode nchar Datos Unicode de longitud variable con una longitud máxima de 4.000 caracteres. nvarchar Datos Unicode de longitud variable con una longitud máxima de 4.000 caracteres. sysname es el tipo de datos suministrado por el sistema y definido por el usuario que es sinónimo de nvarchar(128) y que se utiliza para hacer referencia a nombres de objetos de bases de datos. ntext Datos Unicode de longitud variable con una longitud máxima de 230 - 1 1.073.741.823) caracteres. Cadenas binarias binary Datos binarios de longitud fija con una longitud máxima de 8.000 bytes. varbinary Datos Unicode de longitud variable con una longitud máxima de 8.000 bytes. image Datos Unicode de longitud variable con una longitud máxima de 231 - 1 (1.147.483.647) bytes. Sinónimos Los tipos de datos sinónimos se incluyen por compatibilidad con SQL-92. Sinónimo Tipo de datos asignado al sistema Binary varying varbinary char varying varchar character char character char(1) character(n) char(n) character varying(n) varchar(nn) Dec decimal Double precision float Flota[(n)] para n = 1-7 real Flota[(n)] para n = 8-15 float Integer int national character(n) nchar(n) national char(n) nchar(n) national character varying(n) nvarchar(n) national char varying(n) nvarchar(n) national text ntext Numeric decimal

Page 8: Manual de Refer en CIA - SQL Server

• "Uniqueidentifier" se trata de un numero hexadecimal de 16Bytes que hace referencia a un idenficador exclusivo global (GUID). El GUID es especialmente util cuando una fila debe ser única entre otras muchas por ejemplo, en una columa con números de identificación de los clientes, para compilar una lista de clientes en una compañía en varios países. • Tipos definidos por el Usuario: Permite que el usuario defina tipos de datos como por Ej.: el código de producto, que se basa en el tipo de datos "char" y que consta de dos letras mayúsculas seguidas de un numero de proveedor de 5 cifras. Los tipos de datos definidos por el usuario también se llaman UDT se basan en el tipo de datos del sistema, se pueden utilizar cuando varias tablas deben almacenar el mismo tipo de datos en una columna, tienen exactamente el mismo tipo de datos en una columna y desea asegurarse de que dicha columna tiene exactamente el mismo tipo de datos en todas las tablas, longitud, condición de aceptación de valores nulos,...

5. Rules Cuando se enlaza una regla a una columna o un tipo de datos definido por el usuario, especifica los valores aceptables que se pueden insertar en esa columna. Las reglas, que son una característica de compatibilidad con versiones anteriores, realizan algunas de las mismas funciones que las restricciones de comprobación. Las restricciones CHECK, creadas mediante la palabra clave CHECK de ALTER o CREATE TABLE, son la forma preferida y estándar de restringir los valores de una columna (se pueden definir restricciones múltiples en una o múltiples columnas). Una columna o tipo de datos definido por el usuario sólo puede tener una regla enlazada. Sin embargo, una columna puede tener una regla y una o más restricciones de comprobación asociadas con ella. Cuando esto es así, se evalúan todas las restricciones. Sintaxis CREATE RULE regla AS expresiónCondición Ejemplos A. Regla con un intervalo Este ejemplo crea una regla que restringe el intervalo de enteros que se insertan en las columnas a las que la regla está enlazada. CREATE RULE range_rule AS @range >= $1000 AND @range < $20000

Page 9: Manual de Refer en CIA - SQL Server

B. Regla con una lista Este ejemplo crea una regla que restringe los valores actuales que se escriben en las columnas a las que la regla está enlazada, a sólo aquellos enumerados en la regla. CREATE RULE list_rule AS @list IN ('1389', '0736', '0877') C. Regla con un modelo Este ejemplo crea una regla que sigue un modelo de dos caracteres cualquiera con un guión a continuación, cualquier número de caracteres (o no caracteres) y un entero entre 0 y 9 al final. CREATE RULE pattern_rule AS @value LIKE '_ _-%[0-9]' sp_bindrule (T-SQL) Enlaza una regla a una columna o a un tipo de datos definido por el usuario. Sintaxis sp_bindrule [@rulename =] 'regla', [@objname =] 'nombreObjeto' [, [@futureonly =] 'indicadorSóloFuturo' Ejemplos A. Enlazar una regla a una columna Suponga que se ha creado una regla llamada today en la base de datos actual mediante la instrucción CREATE RULE; este ejemplo enlaza la regla a la columna hire date de la tabla employees. Cuando se agrega una fila a employees, los datos de la columna hire date se comprueban con la regla today. USE master EXEC sp_bindrule 'today', 'employees.[hire date]' B. Enlazar una regla a un tipo de datos definido por el usuario Suponga que existe una regla llamada rule_ssn y un tipo de datos definido por el usuario llamado ssn; este ejemplo enlaza rule_ssn a ssn. En una instrucción CREATE TABLE, las columnas del tipo ssn heredan la regla rule_ssn. Las columnas existentes del tipo ssn también heredan la regla rule_ssn a menos que se especifique futureonly en indicadorSóloFuturo o que ssn tenga una regla enlazada directamente. Las reglas enlazadas a columnas siempre tienen preferencia sobre las enlazadas a tipos de datos. USE master EXEC sp_bindrule 'rule_ssn', 'ssn'

Page 10: Manual de Refer en CIA - SQL Server

C. Utilizar indicadorSóloFuturo Este ejemplo enlaza la regla rule_ssn al tipo de datos definido por el usuario ssn. Como se especifica futureonly, esto no afecta a ninguna de las columnas existentes de tipo ssn. USE master EXEC sp_bindrule 'rule_ssn', 'ssn', 'futureonly' sp_unbindrule (T-SQL) Desasocia una regla de una columna o de un tipo de datos definido por el usuario en la base de datos actual. Sintaxis sp_unbindrule [@objname =] 'nombreObjeto' [, [@futureonly =] 'indicadorSóloFuturo'] Ejemplos A. Desasociar una regla de una columna En este ejemplo se desasocia la regla de la columna startdate de la tabla employees. EXEC sp_unbindrule 'employees.startdate' B. Desasociar una regla de un tipo de datos definido por el usuario En este ejemplo se desasocia la regla del tipo de datos definido por el usuario ssn. EXEC sp_unbindrule ssn C. Utilizar indicadorSóloFuturo En este ejemplo se desasocia la regla del tipo de datos definido por el usuario ssn sin afectar a las columnas ssn existentes. EXEC sp_unbindrule 'ssn', 'futureonly' DROP RULE (T-SQL) Quita una o más reglas definidas por el usuario de la base de datos actual. Sintaxis DROP RULE {regla} [,…n]

Page 11: Manual de Refer en CIA - SQL Server

6. DEFAULT (T-SQL) Cuando se enlaza a una columna o tipo de datos definido por el usuario, un valor predeterminado especifica un valor que debe insertarse en la columna a la que está enlazada el objeto (o en todas las columnas, en el caso de un tipo de datos definido por el usuario) cuando no se proporciona explícitamente un valor durante la inserción. Los valores predeterminados, que son una característica de compatibilidad con versiones anteriores, realizan algunas de las mismas funciones que las definiciones predeterminadas creadas mediante la palabra clave DEFAULT de las instrucciones ALTER o CREATE TABLE. Las definiciones predeterminadas son el método preferido y estándar de restringir los datos de columna, debido a que la definición se almacena con la tabla y se quita automáticamente cuando se quita ésta. Sin embargo, un valor predeterminado es útil cuando se utiliza múltiples veces en múltiples columnas. Sintaxis CREATE DEFAULT predeterminado AS expresiónConstante Ejemplos A. Crear un valor predeterminado sencillo de carácter Este ejemplo crea un valor predeterminado de carácter de desconocido. USE pubs GO CREATE DEFAULT phonedflt AS 'unknown' sp_bindefault (T-SQL) Enlaza un valor predeterminado a una columna o a un tipo de datos definido por el usuario. Sintaxis sp_bindefault [@defname =] 'predeterminado', [@objname =] 'nombreObjeto' [, [@futureonly =] 'indicadorSóloFuturo'] Ejemplos A. Enlazar un valor predeterminado a una columna Suponga que se ha definido un valor predeterminado llamado today en la base de datos actual mediante la instrucción CREATE DEFAULT; el siguiente ejemplo enlaza el valor predeterminado a la columna hire date de la tabla employees. Siempre que se agrega una fila a la tabla employees y no se proporcionan datos para la columna hire date, la columna obtiene el valor predeterminado today. USE master EXEC sp_bindefault 'today', 'employees.[hire date]'

Page 12: Manual de Refer en CIA - SQL Server

B. Enlazar un valor predeterminado a un tipo de datos definido por el usuario Suponga que existe un valor predeterminado llamado def_ssn y un tipo de datos definido por el usuario llamado ssn, este ejemplo enlaza el valor predeterminado def_ssn al tipo de datos definido por el usuario ssn. Todas las columnas que tienen asignado el tipo de datos definido por el usuario ssn heredan el valor predeterminado cuando se crea una tabla. Las columnas existentes del tipo ssn también heredan el valor predeterminado def_ssn a menos que se especifique futureonly en el valor indicadorSóloFuturo o que haya un valor predeterminado enlazado directamente a la columna. Los valores predeterminados enlazados a columnas siempre tienen preferencia sobre los enlazados a tipos de datos. USE master EXEC sp_bindefault 'def_ssn', 'ssn' C. Utilizar indicadorSóloFuturo Este ejemplo enlaza el valor predeterminado def_ssn al tipo de datos definido por el usuario ssn. Como se especifica futureonly, esto no afecta a ninguna de las columnas existentes de tipo ssn. USE master EXEC sp_bindefault 'def_ssn', 'ssn', 'futureonly' sp_unbindefault (T-SQL) Desasocia (quita) un valor predeterminado de una columna o de un tipo de datos definido por el usuario en la base de datos actual. Sintaxis sp_unbindefault [@objname =] 'nombreObjeto' [, [@futureonly =] 'indicadorSóloFuturo'] DROP DEFAULT (T-SQL) Quita uno o más valores predeterminados definidos por el usuario de la base de datos actual. La instrucción DROP DEFAULT no se aplica a las restricciones DEFAULT. Para obtener información acerca de cómo quitar restricciones DEFAULT (creadas con la opción DEFAULT de las instrucciones CREATE TABLE o ALTER TABLE), consulte ALTER TABLE. Sintaxis DROP DEFAULT {predeterminado} [,…n]

Page 13: Manual de Refer en CIA - SQL Server

7. ALTER TABLE (T-SQL) Modifica una definición de tabla al alterar, agregar o quitar columnas y restricciones, o al deshabilitar o habilitar restricciones y desencadenadores. Sintaxis ALTER TABLE tabla [ALTER COLUMN nombreColumna { nuevoTipoDatos [ (precisión[, escala] ) ] [ NULL | NOT NULL ] | {ADD | DROP} ROWGUIDCOL } ] | ADD { [ <definiciónColumna> ] | nombreColumna AS expresiónCalculadaColumna }[,...n] | [WITH CHECK | WITH NOCHECK] ADD { <restricciónTabla> }[,...n] | DROP { [CONSTRAINT] nombreRestricción | COLUMN columna }[,...n] | {CHECK | NOCHECK} CONSTRAINT {ALL | nombreRestricción[,…n]} | {ENABLE | DISABLE} TRIGGER {ALL | nombreDesencadenador[,…n]} <definiciónColumna> ::= { nombreColumna tipoDatos } [ [ DEFAULT expresiónConstante ] | [ IDENTITY [(inicialización, incremento ) [NOT FOR REPLICATION] ] ] ] [ ROWGUIDCOL ] [ <restricciónColumna>] [ ...n] <restricciónColumna> ::= [CONSTRAINT nombreRestricción] { [ NULL | NOT NULL ] | [ { PRIMARY KEY | UNIQUE } [CLUSTERED | NONCLUSTERED] [WITH FILLFACTOR = factorRelleno] [ON {grupoArchivos | DEFAULT} ]] ] | [ [FOREIGN KEY] REFERENCES tablaRef [(columnaRef) ] [NOT FOR REPLICATION] ] | CHECK [NOT FOR REPLICATION] (expresiónLógica) } <restricciónTabla> ::= [CONSTRAINT nombreRestricción] { [ { PRIMARY KEY | UNIQUE }

Page 14: Manual de Refer en CIA - SQL Server

[ CLUSTERED | NONCLUSTERED] { ( columna[,...n] ) } [ WITH FILLFACTOR = factorRelleno] [ON {grupoArchivos | DEFAULT} ] ] | FOREIGN KEY [(columna[,...n])] REFERENCES tablaReferencia [(columnaReferencia[,...n])] [NOT FOR REPLICATION] | DEFAULT expresiónConstante [FOR columna] | CHECK [NOT FOR REPLICATION] (expresiónLógica) } Ejemplos A. Alterar una tabla para agregar una nueva columna El ejemplo siguiente agrega una columna que permite valores nulos y a la que no se han proporcionado valores mediante una definición DEFAULT. Cada fila tendrá un valor NULL en la nueva columna. CREATE TABLE doc_exa ( column_a INT) GO ALTER TABLE doc_exa ADD column_b VARCHAR(20) NULL GO EXEC sp_help doc_exa GO DROP TABLE doc_exa GO B. Alterar una tabla para quitar una columna El ejemplo siguiente modifica una tabla para quitar una columna. CREATE TABLE doc_exb ( column_a INT, column_b VARCHAR(20) NULL) GO ALTER TABLE doc_exb DROP COLUMN column_b GO EXEC sp_help doc_exb GO DROP TABLE doc_exb GO C. Alterar una tabla para agregar una columna con una restricción El ejemplo siguiente agrega una nueva columna con una restricción UNIQUE. CREATE TABLE doc_exc ( column_a INT) GO ALTER TABLE doc_exc ADD column_b VARCHAR(20) NULL CONSTRAINT exb_unique UNIQUE GO

Page 15: Manual de Refer en CIA - SQL Server

EXEC sp_help doc_exc GO DROP TABLE doc_exc GO D. Alterar una tabla para agregar una restricción que no se comprueba El ejemplo siguiente agrega una restricción a una columna existente de la tabla. La columna tiene un valor que infringe la restricción; por tanto, se utiliza WITH NOCHECK para impedir que la restricción se valide contra las filas existentes y para permitir que se agregue la restricción. CREATE TABLE doc_exd ( column_a INT) GO INSERT INTO doc_exd VALUES (-1) GO ALTER TABLE doc_exd WITH NOCHECK ADD CONSTRAINT exd_check CHECK (column_a > 1) GO EXEC sp_help doc_exd GO DROP TABLE doc_exd GO E. Alterar una tabla para agregar varias columnas con restricciones El ejemplo siguiente agrega varias columnas con restricciones que se definen con la nueva columna. La primera columna nueva tiene una propiedad IDENTITY; cada fila de la tabla tiene nuevos valores incrementales en la columna de identidad. CREATE TABLE doc_exe ( column_a INT CONSTRAINT column_a_un UNIQUE) GO ALTER TABLE doc_exe ADD /* Add a PRIMARY KEY identity column. */ column_b INT IDENTITY CONSTRAINT column_b_pk PRIMARY KEY, /* Add a column referencing another column in the same table. */ column_c INT NULL CONSTRAINT column_c_fk REFERENCES doc_exe(column_a), /* Add a column with a constraint to enforce that */ /* nonnull data is in a valid phone number format. */ column_d VARCHAR(16) NULL CONSTRAINT column_d_chk CHECK (column_d IS NULL OR column_d LIKE "[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]" OR column_d LIKE "([0-9][0-9][0-9]) [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]"), /* Add a nonnull column with a default. */ column_e DECIMAL(3,3) CONSTRAINT column_e_default

Page 16: Manual de Refer en CIA - SQL Server

DEFAULT .081 GO EXEC sp_help doc_exe GO DROP TABLE doc_exe GO F. Agregar una columna que acepta Null con valores predeterminados El ejemplo siguiente agrega una columna que acepta Null con una definición DEFAULT y utiliza WITH VALUES para proporcionar los valores de cada fila existente en la tabla. Si no se utiliza WITH VALUES, cada fila tiene el valor NULL en la nueva columna. ALTER TABLE MyTable ADD AddDate smalldatetime NULL CONSTRAINT AddDateDflt DEFAULT getdate() WITH VALUES G. Deshabilitar y volver a habilitar una restricción El ejemplo siguiente deshabilita una restricción que limita los salarios que se aceptan en los datos. WITH NOCHECK CONSTRAINT se utiliza con ALTER TABLE para deshabilitar la restricción y permitir una inserción que normalmente infringiría la restricción. WITH CHECK CONSTRAINT se emplea para volver a habilitar la restricción. CREATE TABLE cnst_example (id INT NOT NULL, name VARCHAR(10) NOT NULL, salary MONEY NOT NULL CONSTRAINT salary_cap CHECK (salary < 100000) ) -- Valid inserts INSERT INTO cnst_example VALUES (1,"Joe Brown",65000) INSERT INTO cnst_example VALUES (2,"Mary Smith",75000) -- This insert violates the constraint. INSERT INTO cnst_example VALUES (3,"Pat Jones",105000) -- Disable the constraint and try again. ALTER TABLE cnst_example NOCHECK CONSTRAINT salary_cap INSERT INTO cnst_example VALUES (3,"Pat Jones",105000) -- Reenable the constraint and try another insert, will fail. ALTER TABLE cnst_example CHECK CONSTRAINT salary_cap INSERT INTO cnst_example VALUES (4,"Eric James",110000) H. Deshabilitar y volver a habilitar un desencadenador El ejemplo siguiente utiliza la opción DISABLE TRIGGER de ALTER TABLE para deshabilitar el desencadenador y permitir una inserción que normalmente infringiría el desencadenador. A continuación, utiliza ENABLE TRIGGER para volver a habilitar el desencadenador.

Page 17: Manual de Refer en CIA - SQL Server

CREATE TABLE trig_example (id INT, name VARCHAR(10), salary MONEY) go -- Create the trigger. CREATE TRIGGER trig1 ON trig_example FOR INSERT as IF (SELECT COUNT(*) FROM INSERTED WHERE salary > 100000) > 0 BEGIN print "TRIG1 Error: you attempted to insert a salary > $100,000" ROLLBACK TRANSACTION END GO -- Attempt an insert that violates the trigger. INSERT INTO trig_example VALUES (1,"Pat Smith",100001) GO -- Disable the trigger. ALTER TABLE trig_example DISABLE TRIGGER trig1 GO -- Attempt an insert that would normally violate the trigger INSERT INTO trig_example VALUES (2,"Chuck Jones",100001) GO -- Reenable the trigger. ALTER TABLE trig_example ENABLE TRIGGER trig1 GO -- Attempt an insert that violates the trigger. INSERT INTO trig_example VALUES (3,"Mary Booth",100001) GO

8. Vistas Antes de crear una vista, considere estas indicaciones: • Sólo puede crear vistas en la base de datos actual. Sin embargo, las tablas y las vistas a las que se haga referencia desde la nueva vista pueden encontrarse en otras bases de datos e, incluso, en otros servidores, si la vista se define mediante consultas distribuidas. • Los nombres de las vistas deben seguir las reglas para los identificadores y ser únicos para cada usuario. Además, el nombre debe ser distinto del de cualquier tabla de las que el usuario sea propietario. • Puede generar vistas dentro de otras vistas y en procedimientos que hagan referencia a vistas. Microsoft® SQL Server™ permite anidar hasta 32 niveles de vistas.

Page 18: Manual de Refer en CIA - SQL Server

• No puede asociar reglas, definiciones DEFAULT ni desencadenadores con las vistas. • La consulta que defina a la vista no puede incluir las cláusulas ORDER BY, COMPUTE o COMPUTE BY, ni la palabra clave INTO. • No puede generar índices ni crear definiciones de índices de texto en las vistas. • No puede crear vistas temporales, ni vistas dentro de tablas temporales. • No puede emitir consultas de texto en una vista, aunque una definición de vista puede incluir una consulta de texto si ésta hace referencia a una tabla configurada para indización de texto. Debe especificar el nombre de todas las columnas de la vista en el caso de que: • Alguna de las columnas de la vista derive de una expresión aritmética, una función

integrada o una constante. • Dos o más columnas de la vista tendrían, en caso contrario, el mismo nombre

(normalmente, debido a que la definición de la vista incluye una combinación y las columnas de dos o más tablas diferentes tienen el mismo nombre).

• Desee darle a una columna de la vista un nombre distinto del de la columna de la

que deriva. (También puede cambiar el nombre de las columnas en la vista). Una columna de una vista hereda los tipos de datos de la columna de la que deriva, aunque no cambie su nombre.

Creacion de vistas (T-SQL) Crea una tabla virtual que representa los datos de una o más tablas de una forma alternativa. Las vistas se pueden utilizar como mecanismos de seguridad al conceder permisos sobre una vista, pero no sobre las tablas subyacentes (base). Sintaxis CREATE VIEW nombreVista [(columna [,…n])] [WITH ENCRYPTION] AS instrucciónSelección [WITH CHECK OPTION] o Drop view vista

Page 19: Manual de Refer en CIA - SQL Server

9. Procedimientos almacenados Es una colección de instrucciones Transact-SQL, que puede tomar y devolver parámetros proporcionados por el usuario. Los procedimientos se pueden crear para uso permanente o para uso temporal en la sesión de un usuario (procedimiento local temporal) o para el uso temporal en todas las sesiones del usuario (procedimiento temporal global). Los procedimientos almacenados se pueden crear también para que se ejecuten automáticamente cuando se inicia Microsoft® SQL Server™. Sintaxis CREATE PROC[EDURE] nombreProcedimiento [;número] [ {@parámetro tipoDatos} [VARYING] [= predeterminado] [OUTPUT] ] [,...n] [WITH { RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION } ] [FOR REPLICATION] AS instrucciónSQL [...n] Create procedure nombreprocedimiento as sentencias SQL por ejemplo: create procedure procedimiento as select * from table1 Para ejecutar el procedimiento se pone: EXECUTE procedimiento - Para crear varios procedimientos de una sola vez: create procedure procedimiento 1; n as sentencia SQL por ejemplo: Create procedure procedimiento 1; 2 as select * from tabla1 create procedure procedimiento 1;2 as select * from tabla2 - Para ejecutarlos se haria lo siguiente: Execute nombreprocedimiento sin índice - Para eliminar un procedimiento se pone: Drop nombreprocedimiento

Page 20: Manual de Refer en CIA - SQL Server

- Los procedimientos almacenados solo se compilan la primera vez que se ejecutan. - Un procedimiento almacenado también pueden tener parámetros de entrada que llegan hasta 255 y otros de salida (sin limite). Se declaran justo despues del nombreprocedimiento: create procedure nombreprocedimiento @var1 tipo, @var2 tipo as sentencias SQL. - Solo el usuario de la base de datos puede crear procedimientos almacenados dentro se BD. - Las sentencias SQL de los procedimientos almacenados se almacenan en la tabla syscomments de la BD master. -Las sentencias SQL tienen un limite de 255 procedimientos almacenados (es decir hasta 255 filas). EJERCICIO: Hacer un procedimiento que devuelva los nombres de todos los autores que han publicado un libro con un editor cuyo nombre y apellido se pasaran como parametros de entrada. La base de datos a utilizar es pubs SOLUCIÓN: create proc ejemplo1 @nombre varchar(20), @apellido varchar(20) as select au_lname, au_fname, title, pub_name from authors, titles, publishers, titleauthor where au_fname=@nombre and au_lname=@apellido and authors.au_id=titleauthor.au_id and titles.title_id=titleauthor.title_id and titles.pub_id=publishers.pub_id PARA EJECUTARLO: execute ejemplo1 @nombre='johnson', @apellido='white' EJERCICIO: Procedimiento que devuelve todos los autores que han publicado un libro con un editor determinado que se pasaran como variable de entrada. SOLUCION: create procedure ejemplo2 @editor varchar(20)='algodata Infosyste' as select au_lname, au_fname, pub_name from authors a, publishers p, titles t, titleauthor ta where @editor=p.pub_name and t.title_id=ta.title_id and t.pub_id=p.pub_id nota: despues de los nombres de las tablas se pone la inicial, para renombrarla y despues ser mas facil poner su nombre. se llaman alias -------------------------------------------------------------------------------------------------------------

Page 21: Manual de Refer en CIA - SQL Server

- Un procedimiento no puede tener sentencias de creación: CREATE VIEW CREATE DEFAULT CREATE TRIGGER CREATE ROLES pero sí, sentencias de eliminación como DROP. - No se puede volver a crear en un procedimiento almacenado con el mismo nombre de otro que fue eliminado en el mismo. EJERCICIO: Al introducir el nombre del alumno queremos ver también su nota: SOLUCION: CREATE PROCEDURE PROC1 @VAR VARCHAR(30)=NULL AS IF @VAR IS NULL PRINT 'INTRODUCE EL NOMBRE DEL ALUMNO' ELSE SELECT NOMBRE, NOTAS FROM TABLE1 WHERE NOMBRE=@VAR EJERCICIO: Como poder utilizar los valores devueltos de un procedimiento como variable de entrada de a otro procedimiento. SOLUCION: Este procedimiento devuelve 100 si un determinado alumno de una tabla esta suspenso y 200 si esta aprobado. CREATE PROC APROBADO @VAR VARCHAR(20) AS IF (SELECT NOTAS FROM TABLE1 WHERE NOMBRE=@VAR)>5 RETURN 200 ELSE RETURN 100 Definir otro procedimiento que utiliza este primero y presenta un mensaje indicando si un alumno esta aprobado o no CREATE PROC MOSTRAR @VAR VARCHAR(20) AS DECLARE @RETORNO INT EXECUTE @RETORNO= APROBADO @VAR IF (@RETORNO=100) PRINT 'ALUMNO SUSPENSO' ELSE PRINT 'ALUMNO APROBADO' EXECUTE MOSTRAR 'FRAN '”

Page 22: Manual de Refer en CIA - SQL Server

10. Roles Las funciones son una herramienta que permite agrupar usuarios en una única unidad a la que se puede aplicar permisos. Los permisos concedidos, denegados o retirados de una función se aplican a los miembros de la función. Puede establecer una función que represente uno de los tipos de trabajo de su organización y conceder los permisos adecuados a dicha función. Cuando los trabajadores cambian de puesto de trabajo, solo tiene que asignarlos a la nueva función. Cuando dejen un puesto, elimínelos de la función que represente dicho tipo de trabajo. No es necesario que conceda, deniegue o retire permisos repetitivamente a cada persona que incorpore o deje la organización. Los permisos se aplican automáticamente cuando los usuarios se definen como miembros de una función. Funciones Las funciones son una herramienta eficaz que permite agrupar usuarios en una única unidad a la que se pueden aplicar permisos. Los permisos concedidos, denegados o retirados de una función se aplican a todos los miembros de la función. Puede establecer una función que represente uno de los tipos de trabajo de su organización y conceder los permisos apropiados a dicha función. Cuando los trabajadores cambian de puesto de trabajo, sólo tiene que asignarlos a la nueva función; cuando dejen un puesto, elimínelos de la función que represente dicho tipo de trabajo. No es necesario que conceda, deniegue o retire permisos repetitivamente a cada persona que se incorpore o deje la organización. Los permisos se aplican automáticamente cuando los usuarios se definen como miembros de una función. Los grupos de Windows NT se pueden utilizar de forma muy similar a las funciones. Para obtener más información, consulte Grupos. Es más sencillo administrar los permisos en una base de datos si define un conjunto de funciones basadas en los tipos de trabajo y asigna a cada función los permisos aplicables para desempeñar dicho trabajo. A partir de este punto, sólo tiene que pasar los usuarios de una función a otra, en lugar de tener que administrar los permisos de cada usuario de forma individual. Si la función asociada con un trabajo cambia, es más sencillo cambiar una sola vez los permisos de la función y hacer que los cambios se apliquen automáticamente a todos los miembros de la función. En Microsoft® SQL Server™ , los usuarios pueden pertenecer a varias funciones. La secuencia de instrucciones asigna a los profesores John y Sarah permiso para actualizar la graduación de los alumnos, mientras que los alumnos Betty y Ralph sólo pueden seleccionar sus graduaciones. Diane ha sido incluida en las dos funciones porque es profesora en una clase y alumna en otra. La vista ProfessorGradeView tiene que restringir que los profesores sólo vean las filas de los alumnos de sus clases, mientras que StudentGradeView tiene que restringir que los alumnos sólo vean sus propias calificaciones. La siguiente secuencia de instrucciones muestra la inclusión de algunos inicios de sesión, usuarios y funciones, y la asignación de permisos a las funciones.

Page 23: Manual de Refer en CIA - SQL Server

USE master GO sp_grantlogin ‘NETDOMAIN\John’ GO sp_defaultdb 'NETDOMAIN\John', ‘courses’ GO sp_grantlogin ‘NETDOMAIN\Sarah’ GO sp_defaultdb 'NETDOMAIN\Sarah', 'courses' GO sp_grantlogin ‘NETDOMAIN\Betty’ GO sp_defaultdb 'NETDOMAIN\Betty', ‘courses’ GO sp_grantlogin ‘NETDOMAIN\Ralph’ GO sp_defaultdb 'NETDOMAIN\Ralph', ‘courses’ GO sp_grantlogin ‘NETDOMAIN\Diane’ GO sp_defaultdb 'NETDOMAIN\Diane', ‘courses’ GO USE courses GO sp_grantdbaccess ‘NETDOMAIN\John’ GO sp_grantdbaccess ‘NETDOMAIN\Sarah’ GO sp_grantdbaccess ‘NETDOMAIN\Betty’ GO sp_grantdbaccess ‘NETDOMAIN\Ralph’ GO sp_grantdbaccess ‘NETDOMAIN\Diane’ GO sp_addrole 'Professor' GO sp_addrole 'Student' GO sp_addrolemember 'Professor', ‘NETDOMAIN\John’ GO sp_addrolemember 'Professor', ‘NETDOMAIN\Sarah’ GO sp_addrolemember 'Professor', ‘NETDOMAIN\Diane’ GO sp_addrolemember 'Student', ‘NETDOMAIN\Betty’ GO sp_addrolemember 'Student', ‘NETDOMAIN\Ralph’ GO sp_addrolemember 'Student', ‘NETDOMAIN\Diane’ GO

Page 24: Manual de Refer en CIA - SQL Server

GRANT SELECT ON StudentGradeView TO Student GO GRANT SELECT, UPDATE ON ProfessorGradeView TO Professor GO La secuencia de instrucciones asigna a los profesores John y Sarah permiso para actualizar la graduación de los alumnos, mientras que los alumnos Betty y Ralph sólo pueden seleccionar sus graduaciones. Diane ha sido incluida en las dos funciones porque es profesora en una clase y alumna en otra. La vista ProfessorGradeView tiene que restringir que los profesores sólo vean las filas de los alumnos de sus clases, mientras que StudentGradeView tiene que restringir que los alumnos sólo vean sus propias calificaciones En la instalación de SQL Server se definen varias funciones fijas. A estas funciones se puedan agregar usuarios para que dispongan de los permisos de administración asociados. Estas son las funciones del servidor. Función fija de servidor Descripción sysadmin Permite realizar cualquier actividad en SQL Server. serveradmin Permite establecer opciones de configuración del servidor y apagar el servidor. setupadmin Permite administrar servidores vinculados y procedimientos de inicio. securityadmin Permite administrar inicios de sesión y permisos CREATE DATABASE; también permite leer los registros de errores. processadmin Permite administrar los procesos que se ejecutan en SQL Server. dbcreator Permite crear y alterar bases de datos. diskadmin Permite administrar archivos de disco. Puede obtener la lista de las funciones fijas del servidor mediante sp_helpsrvrole y obtener los permisos específicos de cada función mediante sp_srvrolepermission. Cada base de datos tiene un conjunto de funciones fijas de la base de datos. Si bien todas las bases de datos tienen funciones con estos mismos nombres, el alcance de cada función individual es sólo su base de datos concreta. Por ejemplo, si Database1 y Database2 tienen ambas un Id. de usuario UserX, la inclusión de UserX en la función fija db_owner de la base de datos en Database1 no hace que UserX sea miembro de la función fija db_owner en Database2 . Función fija de base de datos Descripción db_owner Tiene todos los permisos de la base de datos. db_accessadmin Puede agregar o quitar los Id. de usuario. db_securityadmin Puede administrar todos los permisos, la propiedad de los objetos, las funciones y la pertenencia a ellas. db_ddladmin Puede utilizar todas las instrucciones DDL, menos las instrucciones GRANT, REVOKE y DENY. db_backupoperator Puede utilizar las instrucciones DBCC, CHECKPOINT y BACKUP. db_datareader Puede seleccionar todos los datos de cualquier tabla de usuario de la base de datos. db_datawriter Puede modificar todos los datos de cualquier tabla de usuario de la base de datos. db_denydatareader Puede denegar o retirar permisos SELECT sobre cualquier objeto.

Page 25: Manual de Refer en CIA - SQL Server

db_denydatawriter Puede denegar o retirar permisos INSERT, UPDATE y DELETE sobre cualquier objeto. Puede obtener la lista de las funciones fijas de la base de datos mediante sp_helpdbfixedrole y obtener la lista de los permisos específicos de cada función mediante sp_dbfixedrolepermission. Todos los usuarios de una base de datos pertenecen a la función public de la base de datos. Si quiere que todos los usuarios de una base de datos puedan tener un permiso específico, asigne el permiso a la función public. Si a un usuario no se le han concedido específicamente permisos sobre un objeto, dicho usuario utiliza los permisos asignados a la función public.

11. Triggers Es un tipo especial de procedimiento almacenados que se ejecutan automaticamente como respuesta a una determinada modificacion de una tabla. - Los triggers estan vinculados de manera inseparable de la tabla que motiva su ejecución hasta el punto de que solo el propietario de una tabla puede definir un trigger asociado a la misma. - El propietario de una tabla no puede otorgar el permiso de definicion de triggers sobre la misma a ningun otro usuario. - El trigger se ejecuta como respuesta a la aplicación de ciertas sentencias de modificación sobre la tabla asociada. Estas sentencias se especifican en la clausula FOR {insert, update, delete}. Las llaves son para especificar que pueden ser una o mas. SINTAXIS: Create triggers nombretrigger ON tabla FOR {insert, update, delete} AS IF insert/update/delete (nombre columna) AND/OR insert/update/delete (nombre columna2) .... sentencias SQL Las barras / son para especificar que tiene que ser una de las tres.

Page 26: Manual de Refer en CIA - SQL Server

12. Procedimientos sp_help • sp_helptext (T-SQL) Imprime el texto de una regla, un valor predeterminado o un procedimiento almacenado o desencadenador no cifrados, o una vista. Sintaxis sp_helptext [@objname =] 'nombre' • sp_help (T-SQL) Presenta información acerca de un objeto de la base de datos (cualquier objeto de la tabla sysobjects), de un tipo de datos definido por el usuario o de un tipo de datos proporcionado por Microsoft® SQL Server™. Sintaxis sp_help [[@objname =] nombre] • sp_helpfile (T-SQL) Devuelve los nombres físicos y los atributos de los archivos asociados con la base de datos actual. Utilice este procedimiento almacenado para determinar los nombres de los archivos que vaya a asignar o quitar del servidor. Sintaxis sp_helpfile [[@filename =] 'nombre'] • sp_helpsrvrole (T-SQL) Devuelve la lista de las funciones fijas de servidor de Microsoft® SQL Server™. Sintaxis sp_helpsrvrole [[@srvrolename =] 'función'] • sp_srvrolepermission (T-SQL) Devuelve los permisos aplicados a una función fija de servidor. Sintaxis sp_srvrolepermission [[@srvrolename =] 'función'] • sp_helpdbfixedrole (T-SQL) Devuelve la lista de las funciones fijas de base de datos. Sintaxis sp_helpdbfixedrole [@rolename =] 'función' • sp_dbfixedrolepermission (T-SQL) Muestra los permisos para cada función fija de base de datos. Sintaxis sp_dbfixedrolepermission [[@rolename =] 'función']

Page 27: Manual de Refer en CIA - SQL Server

• sp_grantlogin (T-SQL) Permite a una cuenta de usuario o de grupo de Microsoft® Windows NT® conectar con Microsoft SQL Server™ mediante la autenticación de Windows NT. • sp_defaultdb (T-SQL) Cambia la base de datos predeterminada de un inicio de sesión. Sintaxis sp_defaultdb [@loginame =] 'inicioSesión' ,[@defdb =] 'baseDatos' • sp_addrole (T-SQL) Crea una nueva función de Microsoft® SQL Server™ en la base de datos actual. Sintaxis sp_addrole [@rolename =] 'función' [,[@ownername =] 'propietario'] • sp_addrolemember (T-SQL) Agrega una cuenta de seguridad como miembro de una función de Microsoft® SQL Server™ existente en la base de datos actual. Sintaxis sp_addrolemember [@rolename =] 'función', [@membername =] 'cuentaSeguridad'

13. Procedimientos almacenados del sistema Se pueden realizar muchas actividades administrativas e informativas de Microsoft® SQL Server™ a través de los procedimientos almacenados del sistema. Los procedimientos almacenados del sistema se agrupan en estas categorías. Categoría Descripción Procedimientos de catálogo Implementan las funciones del diccionario de datos de ODBC y aíslan las aplicaciones de ODBC de los cambios en las tablas subyacentes del sistema. Procedimientos de cursor Implementan la funcionalidad de variable de cursor. Procedimientos de consultas distribuidas Utilizados para implementar y administrar consultas distribuidas. Procedimientos del Agente SQL Server Utilizados por el Agente SQL Server para administrar actividades programadas y controladas por sucesos. Procedimientos de duplicación Utilizados para administrar la duplicación. Procedimientos de seguridad Utilizados para administrar la seguridad.

Page 28: Manual de Refer en CIA - SQL Server

Procedimientos del sistema Utilizados para el mantenimiento general de SQL Server. Procedimientos del Ayudante de Web Utilizados por el Ayudante de Web. Procedimientos extendidos generales Proporcionan una interfaz de SQL Server a los programas externos para diversas actividades de mantenimiento. Procedimientos extendidos de SQL Mail Utilizados para realizar operaciones de correo electrónico desde SQL Server. Analizador de SQL Server Procedimiento extendido del Analizador de SQL Server contra un servidor local a través del Analizador de consultas de SQL Server, utilice la Autentificación de Windows. Cuando se utiliza la biblioteca de red de memoria compartida, SQL Server no admite la representación a menos que se conecte mediante la Autenticación de Windows. Procedimientos de Automatización OLE Permiten utilizar objetos de Automatización OLE estándar dentro de un proceso por lotes estándar de Transact-SQL. Nota A menos que se documente específicamente lo contrario, todos los procedimientos almacenados del sistema devuelven un valor de 0, que indica que son correctos. Para indicar un error, se devuelve un valor distinto de cero. Procedimientos de catálogo sp_column_privileges sp_special_columns sp_columns sp_sproc_columns sp_databases sp_statistics sp_fkeys sp_stored_procedures sp_pkeys sp_table_privileges sp_server_info sp_tables Procedimientos de cursor sp_cursor_list sp_describe_cursor_tables sp_describe_cursor sp_describe_cursor_columns Procedimientos del Agente SQL Server sp_add_alert sp_help_jobschedule sp_add_category sp_help_jobserver sp_add_job sp_help_jobstep sp_add_jobschedule sp_help_notification sp_add_jobserver sp_help_operator sp_add_jobstep sp_help_targetserver sp_add_notification sp_help_targetservergroup sp_add_operator sp_helphistory

Page 29: Manual de Refer en CIA - SQL Server

sp_add_targetservergroup sp_helptask sp_add_targetsvrgrp_member sp_manage_jobs_by_login sp_addtask sp_msx_defect sp_apply_job_to_targets sp_msx_enlist sp_delete_alert sp_post_msx_operation sp_delete_category sp_purge_jobhistory sp_delete_job sp_purgehistory sp_delete_jobschedule sp_reassigntask sp_delete_jobserver sp_remove_job_from_targets sp_delete_jobstep sp_resync_targetserver sp_delete_notification sp_start_job sp_delete_operator sp_stop_job sp_delete_targetserver sp_update_alert sp_delete_targetservergroup sp_update_category sp_delete_targetsvrgrp_member sp_update_job sp_droptask sp_update_jobschedule sp_help_alert sp_update_jobstep sp_help_category sp_update_notification sp_help_downloadlist sp_update_operator sp_help_job sp_update_targetservergroup sp_help_jobhistory sp_updatetask Procedimientos de duplicación sp_add_agent_parameter sp_dsninfo sp_add_agent_profile sp_dumpparamcmd sp_addarticle sp_enumcustomresolvers sp_adddistpublisher sp_enumdsn sp_adddistributiondb sp_enumfullsubscribers sp_adddistributor sp_expired_subscription_cleanup sp_addmergearticle sp_generatefilters sp_addmergefilter sp_getmergedeletetype sp_addmergepublication sp_get_distributor sp_addmergepullsubscription sp_grant_publication_access sp_addmergepullsubscription_agent sp_help_agent_default sp_addmergesubscription sp_help_agent_parameter sp_addpublication sp_help_agent_profile sp_addpublication_snapshot sp_help_publication_access sp_addpublisher70 sp_helparticle sp_addpullsubscription sp_helparticlecolumns sp_addpullsubscription_agent sp_helpdistpublisher sp_addsubscriber sp_helpdistributiondb sp_addsubscriber_schedule sp_helpdistributor sp_addsubscription sp_helpmergearticle sp_addsynctriggers sp_helpmergearticleconflicts sp_addtabletocontents sp_helpmergeconflictrows sp_article_validation sp_helpmergedeleteconflictrows sp_articlecolumn sp_helpmergefilter sp_articlefilter sp_helpmergepublication sp_articlesynctranprocs sp_helpmergepullsubscription sp_articleview sp_helpmergesubscription

Page 30: Manual de Refer en CIA - SQL Server

sp_browsereplcmds sp_helppublication sp_change_agent_parameter sp_helppullsubscription sp_change_agent_profile sp_helpreplicationdboption sp_changearticle sp_helpsubscriberinfo sp_changedistpublisher sp_helpsubscription sp_changedistributiondb sp_helpsubscription_properties sp_changedistributor_password sp_link_publication sp_changedistributor_property sp_mergedummyupdate sp_changemergearticle sp_mergesubscription_cleanup sp_changemergefilter sp_publication_validation sp_changemergepublication sp_refreshsubscriptions sp_changemergepullsubscription sp_reinitmergepullsubscription sp_changemergesubscription sp_reinitmergesubscription sp_changepublication sp_reinitpullsubscription sp_changesubscriber sp_reinitsubscription sp_changesubscriber_schedule sp_removedbreplication sp_changesubstatus sp_replcmds sp_change_subscription_properties sp_replcounters sp_check_for_sync_trigger sp_repldone sp_deletemergeconflictrow sp_replflush sp_drop_agent_parameter sp_replicationdboption sp_drop_agent_profile sp_replication_agent_checkup sp_droparticle sp_replsetoriginator sp_dropdistpublisher sp_replshowcmds sp_dropdistributiondb sp_repltrans sp_dropdistributor sp_revoke_publication_access sp_dropmergearticle sp_script_synctran_commands sp_dropmergefilter sp_scriptdelproc sp_dropmergepublication sp_scriptinsproc sp_dropmergepullsubscription sp_scriptmappedupdproc sp_dropmergesubscription sp_scriptupdproc sp_droppublication sp_subscription_cleanup sp_droppullsubscription sp_table_validation sp_dropsubscriber sp_update_agent_profile sp_dropsubscription Procedimientos de seguridad sp_addalias sp_droprole sp_addapprole sp_droprolemember sp_addgroup sp_dropserver sp_addlinkedsrvlogin sp_dropsrvrolemember sp_addlogin sp_dropuser sp_addremotelogin sp_grantdbaccess sp_addrole sp_grantlogin sp_addrolemember sp_helpdbfixedrole sp_addserver sp_helprotect sp_addsrvrolemember sp_helplinkedsrvlogin sp_adduser sp_helplogins sp_approlepassword sp_helpntgroup

Page 31: Manual de Refer en CIA - SQL Server

sp_change_users_login sp_helpremotelogin sp_changedbowner sp_helprole sp_changegroup sp_helprolemember sp_changeobjectowner sp_helprotect sp_dbfixedrolepermission sp_helpsrvrole sp_defaultdb sp_helpsrvrolemember sp_defaultlanguage sp_helpuser sp_denylogin sp_password sp_dropalias sp_remoteoption sp_dropapprole sp_revokedbaccess sp_dropgroup sp_revokelogin sp_droplinkedsrvlogin sp_setapprole sp_droplogin sp_srvrolepermission sp_dropremotelogin sp_validatelogins Procedimientos del sistema sp_add_data_file_recover_suspect_db sp_helpconstraint sp_add_log_file_recover_suspect_db sp_helpdb sp_addextendedproc sp_helpdevice sp_addmessage sp_helpextendedproc sp_addtype sp_helpfile sp_addumpdevice sp_helpfilegroup sp_altermessage sp_help_fulltext_catalogs sp_autostats sp_help_fulltext_catalogs_cursor sp_attach_db sp_help_fulltext_columns sp_attach_single_file_db sp_help_fulltext_columns_cursor sp_bindefault sp_help_fulltext_tables sp_bindrule sp_help_fulltext_tables_cursor sp_bindsession sp_helpindex sp_certify_removable sp_helplanguage sp_configure sp_helpserver sp_create_removable sp_helpserver sp_createstats sp_helptext sp_cycle_errorlog sp_helptrigger sp_datatype_info sp_indexoption sp_dbcmptlevel sp_lock sp_dboption sp_monitor sp_delete_backuphistory sp_processmail sp_depends sp_procoption sp_detach_db sp_recompile sp_dropdevice sp_refreshview sp_dropextendedproc sp_rename sp_dropmessage sp_renamedb sp_droptype sp_serveroption sp_executesql sp_setnetname sp_getbindtoken sp_spaceused sp_fulltext_catalog sp_tableoption sp_fulltext_column sp_unbindefault sp_fulltext_database sp_unbindrule sp_fulltext_service sp_updatetask

Page 32: Manual de Refer en CIA - SQL Server

sp_fulltext_table sp_validname sp_help sp_who Procedimientos de consultas distribuidas sp_addlinkedserver sp_indexes sp_addlinkedsrvlogin sp_linkedservers sp_catalogs sp_primarykeys sp_column_privileges_ex sp_serveroption sp_columns_ex sp_table_privileges_ex sp_droplinkedsrvlogin sp_tables_ex sp_foreignkeys Procedimientos del Ayudante de Web sp_dropwebtask sp_makewebtask sp_enumcodepages sp_runwebtask Procedimientos extendidos generales xp_cmdshell xp_revokelogin xp_enumgroups xp_sprintf xp_findnextmsg xp_sqlinventory xp_grantlogin xp_sscanf xp_loginconfig xp_logevent xp_logininfo xp_msver xp_sqlmaint Procedimientos extendidos deSQL Mail xp_deletemail xp_startmail xp_readmail xp_stopmail xp_sendmail xp_findnextmsg Procedimientos extendidos del Analizador de SQL Server xp_sqltrace xp_trace_getuserfilter xp_trace_addnewqueue xp_trace_getwritefilter xp_trace_deletequeuedefinition xp_trace_loadqueuedefinition xp_trace_destroyqueue xp_trace_pausequeue xp_trace_enumqueuedefname xp_trace_restartqueue xp_trace_enumqueuehandles xp_trace_savequeuedefinition xp_trace_eventclassrequired xp_trace_setappfilter xp_trace_flushqueryhistory xp_trace_setconnectionidfilter xp_trace_generate_event xp_trace_setcpufilter xp_trace_getappfilter xp_trace_setdbidfilter xp_trace_getconnectionidfilter xp_trace_setdurationfilter xp_trace_getcpufilter xp_trace_seteventclassrequired xp_trace_getdbidfilter xp_trace_seteventfilter xp_trace_getdurationfilter xp_trace_sethostfilter xp_trace_geteventfilter xp_trace_sethpidfilter xp_trace_geteventnames xp_trace_setindidfilter xp_trace_getevents xp_trace_setntdmfilter xp_trace_gethostfilter xp_trace_setntnmfilter

Page 33: Manual de Refer en CIA - SQL Server

xp_trace_gethpidfilter xp_trace_setobjidfilter xp_trace_getindidfilter xp_trace_setqueryhistory xp_trace_getntdmfilter xp_trace_setqueueautostart xp_trace_getntnmfilter xp_trace_setqueuecreateinfo xp_trace_getobjidfilter xp_trace_setqueuedestination xp_trace_getqueueautostart xp_trace_setreadfilter xp_trace_getqueuedestination xp_trace_setserverfilter xp_trace_getqueueproperties xp_trace_setseverityfilter xp_trace_getreadfilter xp_trace_setspidfilter xp_trace_getserverfilter xp_trace_setsysobjectsfilter xp_trace_getseverityfilter xp_trace_settextfilter xp_trace_getspidfilter xp_trace_setuserfilter xp_trace_getsysobjectsfilter xp_trace_setwritefilter xp_trace_gettextfilter Procedimientos almacenados extendidos deAutomatización OLE sp_OACreate sp_OAMethod sp_OADestroy sp_OASetProperty sp_OAGetErrorInfo sp_OAStop sp_OAGetProperty Sintaxis de jerarquía de objetos Procedimientos almacenados del sistema de la API Los usuarios que ejecutan el Analizador de SQL Server contra aplicaciones ADO, OLE DB, ODBC y de bibliotecas de bases de datos pueden observar que se utilizan procedimientos almacenados del sistema que no se tratan en la Referencia de Transact- SQL. El proveedor de OLE DB para SQL Server de Microsoft, el controlador de ODBC de SQL Server y la biblioteca de vínculos dinámicos (DLL, Dynamic-Link Library) de Bibliotecas de bases de datos utilizan estos procedimientos almacenados para implementar la funcionalidad de una API de bases de datos. Estos procedimientos almacenados simplemente son el mecanismo que el proveedor o los controladores utilizan para comunicar las peticiones del usuario a SQL Server. Se han diseñado sólo para uso interno del proveedor de OLE DB para SQL Server, el controlador de ODBC de SQL Server y la DLL de Bibliotecas de bases de datos. No es compatible llamarlos explícitamente desde una aplicación de SQL Server. La funcionalidad completa de estos procedimientos almacenados está disponible para las aplicaciones de SQL Server a través de las funciones de la API que admiten. Por ejemplo, la funcionalidad de cursor del procedimiento almacenado del sistema sp_cursor está disponible para las aplicaciones de OLE DB a través de las propiedades y métodos de cursor de la API de OLE DB, para las aplicaciones de ODBC a través de los atributos y funciones de cursor de ODBC y para las aplicaciones de Bibliotecas de bases de datos a través de la Biblioteca de cursores de Bibliotecas de bases de datos. Estos procedimientos almacenados del sistema aceptan la funcionalidad de cursor de ADO, OLE DB, ODBC y de la Biblioteca de cursores de Bibliotecas de bases de datos: sp_cursor sp_cursorclose sp_cursorexecute sp_cursorfetch sp_cursoropen sp_cursoroption sp_cursorprepare sp_cursorunprepare

Page 34: Manual de Refer en CIA - SQL Server

Estos procedimientos almacenados del sistema aceptan el modelo de preparación y ejecución para ejecutar instrucciones Transact-SQL en ADO, OLE DB y ODBC: sp_execute sp_prepare sp_unprepare Los procedimientos almacenados sp_createorphan y sp_droporphans se utilizan para el procesamiento de ntext, text e image de ODBC. SQL Server utiliza el procedimiento almacenado sp_reset_connection para aceptar las llamadas a procedimientos almacenados remotos en una transacción. SQL Server utiliza el procedimiento almacenado sp_sdidebug para depurar instrucciones Transact-SQL.