Está en la página 1de 34

Manual de referencia 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. Instruccin <<Alter table >> 8. Vistas 9. Procedimientos almacenados 10. Funciones (Roles) 11. Disparadores (Triggers) 12. Procedimientos sp_help 13. Procedimientos almacenados del sistema

1. Bases de datos
Creacin de base de datos. Create database nombre de la base de datos. Ubicacin de la base de datos Los archivos se almacenan fsicamente en un fichero.mdf. Tambin se crea un fichero log con extensin.ldf. Eliminacin de una base de datos Es posible eliminar ms 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') )

/* ************************* 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 expresin para una columna calculada Este ejemplo ilustra el uso de una expresin ((columna1 + columna2)/2) para calcular la columna calculada mimedia. CREATE TABLE mitabla ( columna1 int, columna2 int, mimedia AS (columna1 + columna2)/2 ) Modificacin 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 relacin. Esta tabla muestra la funcin de las opciones disponibles en el cuadro de dilogo Crear relacin-> Opcin Funcin Nombre de la relacin Muestra el nombre asignado por el sistema a la relacin. Para cambiar el nombre a la relacin, 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 relacin, 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 relacin, 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.

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

4. Tipos de datos (T-SQL)


En Microsoft SQL Server, cada columna, variable local, expresin y parmetro 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 tambin definirse. Para obtener ms informacin acerca de los tipos de datos definidos por el usuario. Enteros bit Datos enteros con valor 1 0. int Datos enteros (nmeros 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 numricos decimal Datos de precisin y escala numrica fijas comprendidos entre -1038 -1 y 1038 -1. numrico Sinnimo de decimal. money y smallmoney

money Valores de moneda comprendidos entre -263 (-922.337.203.685.477,5808) y 263 - 1 (+922.337.203.685.477,5807), con una precisin de una diezmilsima de la unidad monetaria. smallmoney Valores de moneda comprendidos entre -214.748,3648 y +214.748,3647, con una precisin de una diezmilsima de la unidad monetaria. Numricos con aproximacin float Nmeros con precisin de coma flotante comprendidos entre -1,79E + 308 y 1,79E + 308. real Nmeros con precisin 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 precisin 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 precisin de un minuto. Numricos cursor Una referencia a un cursor. timestamp Es un nmero 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 mxima de 8.000 caracteres. varchar Datos no Unicode de longitud variable con un mximo de 8.000 caracteres. text Datos no Unicode de longitud variable con una longitud mxima de 231 - 1 (1.147.483.647) caracteres.

Cadenas de caracteres Unicode nchar Datos Unicode de longitud variable con una longitud mxima de 4.000 caracteres. nvarchar Datos Unicode de longitud variable con una longitud mxima de 4.000 caracteres. sysname es el tipo de datos suministrado por el sistema y definido por el usuario que es sinnimo 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 mxima de 230 - 1 1.073.741.823) caracteres. Cadenas binarias binary Datos binarios de longitud fija con una longitud mxima de 8.000 bytes. varbinary Datos Unicode de longitud variable con una longitud mxima de 8.000 bytes. image Datos Unicode de longitud variable con una longitud mxima de 231 - 1 (1.147.483.647) bytes. Sinnimos Los tipos de datos sinnimos se incluyen por compatibilidad con SQL-92. Sinnimo 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

"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 nmeros de identificacin de los clientes, para compilar una lista de clientes en una compaa en varios pases. Tipos definidos por el Usuario: Permite que el usuario defina tipos de datos como por Ej.: el cdigo de producto, que se basa en el tipo de datos "char" y que consta de dos letras maysculas seguidas de un numero de proveedor de 5 cifras. Los tipos de datos definidos por el usuario tambin 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, condicin de aceptacin 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 caracterstica de compatibilidad con versiones anteriores, realizan algunas de las mismas funciones que las restricciones de comprobacin. Las restricciones CHECK, creadas mediante la palabra clave CHECK de ALTER o CREATE TABLE, son la forma preferida y estndar de restringir los valores de una columna (se pueden definir restricciones mltiples en una o mltiples columnas). Una columna o tipo de datos definido por el usuario slo puede tener una regla enlazada. Sin embargo, una columna puede tener una regla y una o ms restricciones de comprobacin asociadas con ella. Cuando esto es as, se evalan todas las restricciones. Sintaxis CREATE RULE regla AS expresinCondicin 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

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 slo 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 guin a continuacin, cualquier nmero 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 =] 'indicadorSloFuturo' 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 instruccin 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 instruccin CREATE TABLE, las columnas del tipo ssn heredan la regla rule_ssn. Las columnas existentes del tipo ssn tambin heredan la regla rule_ssn a menos que se especifique futureonly en indicadorSloFuturo 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'

C. Utilizar indicadorSloFuturo 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 =] 'indicadorSloFuturo'] 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 indicadorSloFuturo 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 ms reglas definidas por el usuario de la base de datos actual. Sintaxis DROP RULE {regla} [,n]

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 explcitamente un valor durante la insercin. Los valores predeterminados, que son una caracterstica 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 mtodo preferido y estndar de restringir los datos de columna, debido a que la definicin se almacena con la tabla y se quita automticamente cuando se quita sta. Sin embargo, un valor predeterminado es til cuando se utiliza mltiples veces en mltiples columnas. Sintaxis CREATE DEFAULT predeterminado AS expresinConstante Ejemplos A. Crear un valor predeterminado sencillo de carcter Este ejemplo crea un valor predeterminado de carcter 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 =] 'indicadorSloFuturo'] 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 instruccin 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]'

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 tambin heredan el valor predeterminado def_ssn a menos que se especifique futureonly en el valor indicadorSloFuturo 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 indicadorSloFuturo 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 =] 'indicadorSloFuturo'] DROP DEFAULT (T-SQL) Quita uno o ms valores predeterminados definidos por el usuario de la base de datos actual. La instruccin DROP DEFAULT no se aplica a las restricciones DEFAULT. Para obtener informacin acerca de cmo quitar restricciones DEFAULT (creadas con la opcin DEFAULT de las instrucciones CREATE TABLE o ALTER TABLE), consulte ALTER TABLE. Sintaxis DROP DEFAULT {predeterminado} [,n]

7. ALTER TABLE (T-SQL)


Modifica una definicin 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 [ (precisin[, escala] ) ] [ NULL | NOT NULL ] | {ADD | DROP} ROWGUIDCOL } ] | ADD { [ <definicinColumna> ] | nombreColumna AS expresinCalculadaColumna }[,...n] | [WITH CHECK | WITH NOCHECK] ADD { <restriccinTabla> }[,...n] | DROP { [CONSTRAINT] nombreRestriccin | COLUMN columna }[,...n] | {CHECK | NOCHECK} CONSTRAINT {ALL | nombreRestriccin[,n]} | {ENABLE | DISABLE} TRIGGER {ALL | nombreDesencadenador[,n]} <definicinColumna> ::= { nombreColumna tipoDatos } [ [ DEFAULT expresinConstante ] | [ IDENTITY [(inicializacin, incremento ) [NOT FOR REPLICATION] ] ] ] [ ROWGUIDCOL ] [ <restriccinColumna>] [ ...n] <restriccinColumna> ::= [CONSTRAINT nombreRestriccin] { [ 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] (expresinLgica) } <restriccinTabla> ::= [CONSTRAINT nombreRestriccin] { [ { PRIMARY KEY | UNIQUE }

[ CLUSTERED | NONCLUSTERED] { ( columna[,...n] ) } [ WITH FILLFACTOR = factorRelleno] [ON {grupoArchivos | DEFAULT} ] ] | FOREIGN KEY [(columna[,...n])] REFERENCES tablaReferencia [(columnaReferencia[,...n])] [NOT FOR REPLICATION] | DEFAULT expresinConstante [FOR columna] | CHECK [NOT FOR REPLICATION] (expresinLgica) } 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 definicin 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 restriccin El ejemplo siguiente agrega una nueva columna con una restriccin UNIQUE. CREATE TABLE doc_exc ( column_a INT) GO ALTER TABLE doc_exc ADD column_b VARCHAR(20) NULL CONSTRAINT exb_unique UNIQUE GO

EXEC sp_help doc_exc GO DROP TABLE doc_exc GO D. Alterar una tabla para agregar una restriccin que no se comprueba El ejemplo siguiente agrega una restriccin a una columna existente de la tabla. La columna tiene un valor que infringe la restriccin; por tanto, se utiliza WITH NOCHECK para impedir que la restriccin se valide contra las filas existentes y para permitir que se agregue la restriccin. 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

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 definicin 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 restriccin El ejemplo siguiente deshabilita una restriccin que limita los salarios que se aceptan en los datos. WITH NOCHECK CONSTRAINT se utiliza con ALTER TABLE para deshabilitar la restriccin y permitir una insercin que normalmente infringira la restriccin. WITH CHECK CONSTRAINT se emplea para volver a habilitar la restriccin. 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 opcin DISABLE TRIGGER de ALTER TABLE para deshabilitar el desencadenador y permitir una insercin que normalmente infringira el desencadenador. A continuacin, utiliza ENABLE TRIGGER para volver a habilitar el desencadenador.

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: Slo 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. Adems, 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.

No puede asociar reglas, definiciones DEFAULT ni desencadenadores con las vistas. La consulta que defina a la vista no puede incluir las clusulas 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 definicin de vista puede incluir una consulta de texto si sta hace referencia a una tabla configurada para indizacin 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 expresin aritmtica, una funcin integrada o una constante. Dos o ms columnas de la vista tendran, en caso contrario, el mismo nombre (normalmente, debido a que la definicin de la vista incluye una combinacin y las columnas de dos o ms 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. (Tambin 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 ms 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 instruccinSeleccin [WITH CHECK OPTION] o Drop view vista

9. Procedimientos almacenados
Es una coleccin de instrucciones Transact-SQL, que puede tomar y devolver parmetros proporcionados por el usuario. Los procedimientos se pueden crear para uso permanente o para uso temporal en la sesin 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 tambin para que se ejecuten automticamente cuando se inicia Microsoft SQL Server. Sintaxis CREATE PROC[EDURE] nombreProcedimiento [;nmero] [ {@parmetro tipoDatos} [VARYING] [= predeterminado] [OUTPUT] ] [,...n] [WITH { RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION } ] [FOR REPLICATION] AS instruccinSQL [...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

- Los procedimientos almacenados solo se compilan la primera vez que se ejecutan. - Un procedimiento almacenado tambin pueden tener parmetros 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 SOLUCIN: 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 ------------------------------------------------------------------------------------------------------------

- Un procedimiento no puede tener sentencias de creacin: CREATE VIEW CREATE DEFAULT CREATE TRIGGER CREATE ROLES pero s, sentencias de eliminacin 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 tambin 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 '

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 funcin se aplican a los miembros de la funcin. Puede establecer una funcin que represente uno de los tipos de trabajo de su organizacin y conceder los permisos adecuados a dicha funcin. Cuando los trabajadores cambian de puesto de trabajo, solo tiene que asignarlos a la nueva funcin. Cuando dejen un puesto, elimnelos de la funcin que represente dicho tipo de trabajo. No es necesario que conceda, deniegue o retire permisos repetitivamente a cada persona que incorpore o deje la organizacin. Los permisos se aplican automticamente cuando los usuarios se definen como miembros de una funcin.

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 funcin se aplican a todos los miembros de la funcin. Puede establecer una funcin que represente uno de los tipos de trabajo de su organizacin y conceder los permisos apropiados a dicha funcin. Cuando los trabajadores cambian de puesto de trabajo, slo tiene que asignarlos a la nueva funcin; cuando dejen un puesto, elimnelos de la funcin 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 organizacin. Los permisos se aplican automticamente cuando los usuarios se definen como miembros de una funcin. Los grupos de Windows NT se pueden utilizar de forma muy similar a las funciones. Para obtener ms informacin, consulte Grupos. Es ms 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 funcin los permisos aplicables para desempear dicho trabajo. A partir de este punto, slo tiene que pasar los usuarios de una funcin a otra, en lugar de tener que administrar los permisos de cada usuario de forma individual. Si la funcin asociada con un trabajo cambia, es ms sencillo cambiar una sola vez los permisos de la funcin y hacer que los cambios se apliquen automticamente a todos los miembros de la funcin. 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 graduacin de los alumnos, mientras que los alumnos Betty y Ralph slo 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 slo vean las filas de los alumnos de sus clases, mientras que StudentGradeView tiene que restringir que los alumnos slo vean sus propias calificaciones. La siguiente secuencia de instrucciones muestra la inclusin de algunos inicios de sesin, usuarios y funciones, y la asignacin de permisos a las funciones.

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

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 graduacin de los alumnos, mientras que los alumnos Betty y Ralph slo 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 slo vean las filas de los alumnos de sus clases, mientras que StudentGradeView tiene que restringir que los alumnos slo vean sus propias calificaciones En la instalacin de SQL Server se definen varias funciones fijas. A estas funciones se puedan agregar usuarios para que dispongan de los permisos de administracin asociados. Estas son las funciones del servidor. Funcin fija de servidor Descripcin sysadmin Permite realizar cualquier actividad en SQL Server. serveradmin Permite establecer opciones de configuracin del servidor y apagar el servidor. setupadmin Permite administrar servidores vinculados y procedimientos de inicio. securityadmin Permite administrar inicios de sesin y permisos CREATE DATABASE; tambin 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 especficos de cada funcin 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 funcin individual es slo su base de datos concreta. Por ejemplo, si Database1 y Database2 tienen ambas un Id. de usuario UserX, la inclusin de UserX en la funcin fija db_owner de la base de datos en Database1 no hace que UserX sea miembro de la funcin fija db_owner en Database2 . Funcin fija de base de datos Descripcin 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.

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 especficos de cada funcin mediante sp_dbfixedrolepermission. Todos los usuarios de una base de datos pertenecen a la funcin public de la base de datos. Si quiere que todos los usuarios de una base de datos puedan tener un permiso especfico, asigne el permiso a la funcin public. Si a un usuario no se le han concedido especficamente permisos sobre un objeto, dicho usuario utiliza los permisos asignados a la funcin 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 ejecucin 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 aplicacin de ciertas sentencias de modificacin 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.

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 informacin 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 fsicos 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 =] 'funcin'] sp_srvrolepermission (T-SQL) Devuelve los permisos aplicados a una funcin fija de servidor. Sintaxis sp_srvrolepermission [[@srvrolename =] 'funcin'] sp_helpdbfixedrole (T-SQL) Devuelve la lista de las funciones fijas de base de datos. Sintaxis sp_helpdbfixedrole [@rolename =] 'funcin' sp_dbfixedrolepermission (T-SQL) Muestra los permisos para cada funcin fija de base de datos. Sintaxis sp_dbfixedrolepermission [[@rolename =] 'funcin']

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

13. Procedimientos almacenados del sistema


Se pueden realizar muchas actividades administrativas e informativas de Microsoft SQL Server a travs de los procedimientos almacenados del sistema. Los procedimientos almacenados del sistema se agrupan en estas categoras. Categora Descripcin Procedimientos de catlogo Implementan las funciones del diccionario de datos de ODBC y aslan 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 duplicacin Utilizados para administrar la duplicacin. Procedimientos de seguridad Utilizados para administrar la seguridad.

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 electrnico desde SQL Server. Analizador de SQL Server Procedimiento extendido del Analizador de SQL Server contra un servidor local a travs del Analizador de consultas de SQL Server, utilice la Autentificacin de Windows. Cuando se utiliza la biblioteca de red de memoria compartida, SQL Server no admite la representacin a menos que se conecte mediante la Autenticacin de Windows. Procedimientos de Automatizacin OLE Permiten utilizar objetos de Automatizacin OLE estndar dentro de un proceso por lotes estndar de Transact-SQL. Nota A menos que se documente especficamente 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 catlogo 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

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 duplicacin 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

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

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

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

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 deAutomatizacin OLE sp_OACreate sp_OAMethod sp_OADestroy sp_OASetProperty sp_OAGetErrorInfo sp_OAStop sp_OAGetProperty Sintaxis de jerarqua 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 vnculos dinmicos (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 diseado slo 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 explcitamente desde una aplicacin de SQL Server. La funcionalidad completa de estos procedimientos almacenados est disponible para las aplicaciones de SQL Server a travs 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 travs de las propiedades y mtodos de cursor de la API de OLE DB, para las aplicaciones de ODBC a travs de los atributos y funciones de cursor de ODBC y para las aplicaciones de Bibliotecas de bases de datos a travs 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

Estos procedimientos almacenados del sistema aceptan el modelo de preparacin y ejecucin 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 transaccin. SQL Server utiliza el procedimiento almacenado sp_sdidebug para depurar instrucciones Transact-SQL.

También podría gustarte