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. Instrucción <<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
• 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') )

mimedia AS (columna1 + columna2)/2 ) • Modificación de tablas Alter table [base de datos. 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. seguido de las columnas que forman la clave principal. CREATE TABLE mitabla ( columna1 int..[propietario]. 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. Tabla de la clave principal Muestra el nombre de la tabla de la clave principal de la relación..]nombre tabla [add {columna tipo [restricciones]. . empres_cod char(4) NOT NULL DEFAULT ('9952') REFERENCES empresas(empres_cod).}] 3. columna2 int. trab_cod smallint NOT NULL DEFAULT 1 REFERENCES trabajos(trab_cod). Puede seleccionar distintas columnas para que coincidan con las columnas mostradas en la tabla de la clave principal.. Relaciones Puede confirmar las columnas relacionadas y establecer las propiedades de una nueva relación. Para cambiar el nombre a la relación.. 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 externa. escriba un nombre nuevo en el cuadro de texto. nombre varchar(20) NOT NULL. apellido varchar(30) NOT NULL../* ************************* 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]')..

Si se activa esta casilla. tinyint Datos enteros comprendidos 0 y 255.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. numérico Sinónimo de decimal. Los tipos de datos definidos por el usuario. Decimales y numéricos decimal Datos de precisión y escala numérica fijas comprendidos entre -1038 -1 y 1038 -1. Tipos de datos (T-SQL) En Microsoft® SQL Server™.147. int Datos enteros (números enteros) comprendidos entre -231 (-2. Para obtener más información acerca de los tipos de datos definidos por el usuario.648) y 231 .1 (2. El conjunto de tipos de datos suministrados por el sistema se muestra debajo. Cancelar Borra la línea de la relación del diagrama de la base de datos. pueden también definirse. smallint Datos enteros comprendidos entre 215 (-32. un mensaje de error le notificará que algunos datos han infringido la restricción.483.647). La relación no se crea. money y smallmoney . Aceptar Crea la relación en el diagrama de la base de datos y establece las propiedades que ha seleccionado.147. que son alias de los tipos de datos suministrados por el sistema. Enteros bit Datos enteros con valor 1 ó 0.767). cada columna.1 (32. expresión y parámetro tiene un tipo de datos.483. Habilitar relación para INSERT y UPDATE Aplica la restricción cuando se agregan.768) y 215 . 4. 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. variable local.

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

varbinary Datos Unicode de longitud variable con una longitud máxima de 8.000 caracteres. Cadenas binarias binary Datos binarios de longitud fija con una longitud máxima de 8.000 bytes.1 (1.147. ntext Datos Unicode de longitud variable con una longitud máxima de 230 .823) 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.000 caracteres.483. image Datos Unicode de longitud variable con una longitud máxima de 231 . nvarchar Datos Unicode de longitud variable con una longitud máxima de 4.Cadenas de caracteres Unicode nchar Datos Unicode de longitud variable con una longitud máxima de 4. Sinónimos Los tipos de datos sinónimos se incluyen por compatibilidad con SQL-92.647) bytes.741.000 bytes. 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 .1 1.073.

: el código de producto. 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). que son una característica de compatibilidad con versiones anteriores. realizan algunas de las mismas funciones que las restricciones de comprobación.. Sintaxis CREATE RULE regla AS expresiónCondición Ejemplos A.• "Uniqueidentifier" se trata de un numero hexadecimal de 16Bytes que hace referencia a un idenficador exclusivo global (GUID). 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. Las restricciones CHECK. Los tipos de datos definidos por el usuario también se llaman UDT se basan en el tipo de datos del sistema. en una columa con números de identificación de los clientes. 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. se evalúan todas las restricciones. • Tipos definidos por el Usuario: Permite que el usuario defina tipos de datos como por Ej. Las reglas. una columna puede tener una regla y una o más restricciones de comprobación asociadas con ella. Sin embargo. longitud. se pueden utilizar cuando varias tablas deben almacenar el mismo tipo de datos en una columna.. El GUID es especialmente util cuando una fila debe ser única entre otras muchas por ejemplo.. creadas mediante la palabra clave CHECK de ALTER o CREATE TABLE. condición de aceptación de valores nulos. 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. CREATE RULE range_rule AS @range >= $1000 AND @range < $20000 . para compilar una lista de clientes en una compañía en varios países. especifica los valores aceptables que se pueden insertar en esa columna. Una columna o tipo de datos definido por el usuario sólo puede tener una regla enlazada. Rules Cuando se enlaza una regla a una columna o un tipo de datos definido por el usuario. Cuando esto es así. 5.

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. 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. las columnas del tipo ssn heredan la regla rule_ssn. '0877') C. 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.B. este ejemplo enlaza rule_ssn a ssn.[hire date]' B. USE master EXEC sp_bindrule 'rule_ssn'. 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. '0736'. los datos de la columna hire date se comprueban con la regla today. Cuando se agrega una fila a employees. 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. [@futureonly =] 'indicadorSóloFuturo' Ejemplos A. 'ssn' . 'employees. a sólo aquellos enumerados en la regla. CREATE RULE list_rule AS @list IN ('1389'. [@objname =] 'nombreObjeto' [. Sintaxis sp_bindrule [@rulename =] 'regla'. USE master EXEC sp_bindrule 'today'. En una instrucción CREATE TABLE. 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 la regla a la columna hire date de la tabla employees. Las reglas enlazadas a columnas siempre tienen preferencia sobre las enlazadas a tipos de datos.

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

[@objname =] 'nombreObjeto' [. Sintaxis sp_bindefault [@defname =] 'predeterminado'. USE master EXEC sp_bindefault 'today'. 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. 'employees. Sintaxis CREATE DEFAULT predeterminado AS expresiónConstante Ejemplos A. Siempre que se agrega una fila a la tabla employees y no se proporcionan datos para la columna hire date. DEFAULT (T-SQL) Cuando se enlaza a una columna o tipo de datos definido por el usuario. debido a que la definición se almacena con la tabla y se quita automáticamente cuando se quita ésta. 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.[hire date]' . [@futureonly =] 'indicadorSóloFuturo'] Ejemplos A. 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. el siguiente ejemplo enlaza el valor predeterminado a la columna hire date de la tabla employees.6. que son una característica de compatibilidad con versiones anteriores. 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. un valor predeterminado especifica un valor que debe insertarse en la columna a la que está enlazada el objeto (o en todas las columnas. la columna obtiene el valor predeterminado today. un valor predeterminado es útil cuando se utiliza múltiples veces en múltiples columnas. Crear un valor predeterminado sencillo de carácter Este ejemplo crea un valor predeterminado de carácter de desconocido. Sin embargo.

Utilizar indicadorSóloFuturo Este ejemplo enlaza el valor predeterminado def_ssn al tipo de datos definido por el usuario ssn. USE master EXEC sp_bindefault 'def_ssn'. consulte ALTER TABLE.…n] . 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. La instrucción DROP DEFAULT no se aplica a las restricciones DEFAULT. esto no afecta a ninguna de las columnas existentes de tipo ssn. 'ssn'. Sintaxis DROP DEFAULT {predeterminado} [. '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. 'ssn' C.B. Sintaxis sp_unbindefault [@objname =] 'nombreObjeto' [. Como se especifica futureonly. este ejemplo enlaza el valor predeterminado def_ssn al tipo de datos definido por el usuario ssn. 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. 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). Los valores predeterminados enlazados a columnas siempre tienen preferencia sobre los enlazados a tipos de datos. [@futureonly =] 'indicadorSóloFuturo'] DROP DEFAULT (T-SQL) Quita uno o más valores predeterminados definidos por el usuario de la base de datos actual. USE master EXEC sp_bindefault 'def_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.

.n] | DROP { [CONSTRAINT] nombreRestricción | COLUMN columna }[... agregar o quitar columnas y restricciones.. o al deshabilitar o habilitar restricciones y desencadenadores.. incremento ) [NOT FOR REPLICATION] ] ] ] [ ROWGUIDCOL ] [ <restricciónColumna>] [ . escala] ) ] [ NULL | NOT NULL ] | {ADD | DROP} ROWGUIDCOL } ] | ADD { [ <definiciónColumna> ] | nombreColumna AS expresiónCalculadaColumna }[.…n]} | {ENABLE | DISABLE} TRIGGER {ALL | nombreDesencadenador[. Sintaxis ALTER TABLE tabla [ALTER COLUMN nombreColumna { nuevoTipoDatos [ (precisión[.…n]} <definiciónColumna> ::= { nombreColumna tipoDatos } [ [ DEFAULT expresiónConstante ] | [ IDENTITY [(inicialización...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 } . ALTER TABLE (T-SQL) Modifica una definición de tabla al alterar.n] | {CHECK | NOCHECK} CONSTRAINT {ALL | nombreRestricción[..n] | [WITH CHECK | WITH NOCHECK] ADD { <restricciónTabla> }[...7..

... 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.[ CLUSTERED | NONCLUSTERED] { ( columna[. CREATE TABLE doc_exb ( column_a INT. 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 .. 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..n] ) } [ WITH FILLFACTOR = factorRelleno] [ON {grupoArchivos | DEFAULT} ] ] | FOREIGN KEY [(columna[. Alterar una tabla para quitar una columna El ejemplo siguiente modifica una tabla para quitar una columna.n])] REFERENCES tablaReferencia [(columnaReferencia[. 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...n])] [NOT FOR REPLICATION] | DEFAULT expresiónConstante [FOR columna] | CHECK [NOT FOR REPLICATION] (expresiónLógica) } Ejemplos A...

CREATE TABLE doc_exe ( column_a INT CONSTRAINT column_a_un UNIQUE) GO ALTER TABLE doc_exe ADD /* Add a PRIMARY KEY identity column. 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. cada fila de la tabla tiene nuevos valores incrementales en la columna de identidad. /* Add a column referencing another column in the same table. 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. 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. */ 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]"). La columna tiene un valor que infringe la restricción. Alterar una tabla para agregar varias columnas con restricciones El ejemplo siguiente agrega varias columnas con restricciones que se definen con la nueva columna. */ 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. por tanto. */ column_e DECIMAL(3. */ column_b INT IDENTITY CONSTRAINT column_b_pk PRIMARY KEY.3) CONSTRAINT column_e_default . La primera columna nueva tiene una propiedad IDENTITY. /* Add a nonnull column with a default.EXEC sp_help doc_exc GO DROP TABLE doc_exc GO D.

110000) H. ALTER TABLE cnst_example NOCHECK CONSTRAINT salary_cap INSERT INTO cnst_example VALUES (3. utiliza ENABLE TRIGGER para volver a habilitar el desencadenador.DEFAULT . A continuación."Joe Brown". WITH CHECK CONSTRAINT se emplea para volver a habilitar la restricción. 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.081 GO EXEC sp_help doc_exe GO DROP TABLE doc_exe GO F. 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.Valid inserts INSERT INTO cnst_example VALUES (1. Si no se utiliza WITH VALUES."Mary Smith".105000) -.75000) -. salary MONEY NOT NULL CONSTRAINT salary_cap CHECK (salary < 100000) ) -.Reenable the constraint and try another insert. INSERT INTO cnst_example VALUES (3."Pat Jones"."Eric James". ALTER TABLE cnst_example CHECK CONSTRAINT salary_cap INSERT INTO cnst_example VALUES (4. will fail. 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. .This insert violates the constraint.65000) INSERT INTO cnst_example VALUES (2."Pat Jones". cada fila tiene el valor NULL en la nueva columna. 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.Disable the constraint and try again. ALTER TABLE MyTable ADD AddDate smalldatetime NULL CONSTRAINT AddDateDflt DEFAULT getdate() WITH VALUES G. CREATE TABLE cnst_example (id INT NOT NULL. name VARCHAR(10) NOT NULL.105000) -.

• 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. ALTER TABLE trig_example ENABLE TRIGGER trig1 GO -.000" ROLLBACK TRANSACTION END GO -.CREATE TABLE trig_example (id INT. Además.Reenable the trigger."Mary Booth". incluso.Attempt an insert that violates the trigger. INSERT INTO trig_example VALUES (3. Vistas Antes de crear una vista. INSERT INTO trig_example VALUES (1. name VARCHAR(10). • Los nombres de las vistas deben seguir las reglas para los identificadores y ser únicos para cada usuario. .100001) GO -.100001) GO -. si la vista se define mediante consultas distribuidas. en otros servidores."Chuck Jones". las tablas y las vistas a las que se haga referencia desde la nueva vista pueden encontrarse en otras bases de datos e. salary MONEY) go -. considere estas indicaciones: • Sólo puede crear vistas en la base de datos actual.Attempt an insert that violates the trigger.Attempt an insert that would normally violate the trigger INSERT INTO trig_example VALUES (2.Create the trigger. ALTER TABLE trig_example DISABLE TRIGGER trig1 GO -."Pat Smith". el nombre debe ser distinto del de cualquier tabla de las que el usuario sea propietario. 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.Disable the trigger.100001) GO 8. Sin embargo.

pero no sobre las tablas subyacentes (base). 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. • Creacion de vistas (T-SQL) Crea una tabla virtual que representa los datos de una o más tablas de una forma alternativa.• No puede asociar reglas. una función integrada o una constante. • No puede emitir consultas de texto en una vista.…n])] [WITH ENCRYPTION] AS instrucciónSelección [WITH CHECK OPTION] o Drop view vista . ni la palabra clave INTO. ni vistas dentro de tablas temporales. 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. (También puede cambiar el nombre de las columnas en la vista). en caso contrario. el mismo nombre (normalmente. Una columna de una vista hereda los tipos de datos de la columna de la que deriva. COMPUTE o COMPUTE BY. • Dos o más columnas de la vista tendrían. 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). • No puede generar índices ni crear definiciones de índices de texto en las vistas. Sintaxis CREATE VIEW nombreVista [(columna [. Las vistas se pueden utilizar como mecanismos de seguridad al conceder permisos sobre una vista. • No puede crear vistas temporales. aunque no cambie su nombre. • La consulta que defina a la vista no puede incluir las cláusulas ORDER BY. Desee darle a una columna de la vista un nombre distinto del de la columna de la que deriva. definiciones DEFAULT ni desencadenadores con las vistas.

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

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

No se puede volver a crear en un procedimiento almacenado con el mismo nombre de otro que fue eliminado en el mismo.Un procedimiento no puede tener sentencias de creación: CREATE VIEW CREATE DEFAULT CREATE TRIGGER CREATE ROLES pero sí. 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. sentencias de eliminación como DROP.. 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 '” . SOLUCION: Este procedimiento devuelve 100 si un determinado alumno de una tabla esta suspenso y 200 si esta aprobado. . NOTAS FROM TABLE1 WHERE NOMBRE=@VAR EJERCICIO: Como poder utilizar los valores devueltos de un procedimiento como variable de entrada de a otro procedimiento.

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

'courses' GO sp_grantlogin ‘NETDOMAIN\Betty’ GO sp_defaultdb 'NETDOMAIN\Betty'.USE master GO sp_grantlogin ‘NETDOMAIN\John’ GO sp_defaultdb 'NETDOMAIN\John'. ‘NETDOMAIN\Ralph’ GO sp_addrolemember 'Student'. ‘NETDOMAIN\Betty’ GO sp_addrolemember 'Student'. ‘NETDOMAIN\John’ GO sp_addrolemember 'Professor'. ‘courses’ GO sp_grantlogin ‘NETDOMAIN\Diane’ GO sp_defaultdb 'NETDOMAIN\Diane'. ‘NETDOMAIN\Diane’ GO . ‘NETDOMAIN\Sarah’ GO sp_addrolemember 'Professor'. ‘courses’ GO sp_grantlogin ‘NETDOMAIN\Sarah’ GO sp_defaultdb 'NETDOMAIN\Sarah'. ‘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'. ‘courses’ GO sp_grantlogin ‘NETDOMAIN\Ralph’ GO sp_defaultdb 'NETDOMAIN\Ralph'. ‘NETDOMAIN\Diane’ GO sp_addrolemember 'Student'.

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

sentencias SQL Las barras / son para especificar que tiene que ser una de las tres. Si a un usuario no se le han concedido específicamente permisos sobre un objeto. delete}.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. 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. update. update. Las llaves son para especificar que pueden ser una o mas. Todos los usuarios de una base de datos pertenecen a la función public de la base de datos. 11. UPDATE y DELETE sobre cualquier objeto.El trigger se ejecuta como respuesta a la aplicación de ciertas sentencias de modificación sobre la tabla asociada. .El propietario de una tabla no puede otorgar el permiso de definicion de triggers sobre la misma a ningun otro usuario. . delete} AS IF insert/update/delete (nombre columna) AND/OR insert/update/delete (nombre columna2) . .db_denydatawriter Puede denegar o retirar permisos INSERT. Estas sentencias se especifican en la clausula FOR {insert.. Triggers Es un tipo especial de procedimiento almacenados que se ejecutan automaticamente como respuesta a una determinada modificacion de una tabla. dicho usuario utiliza los permisos asignados a la función public. asigne el permiso a la función public. Si quiere que todos los usuarios de una base de datos puedan tener un permiso específico.. .. SINTAXIS: Create triggers nombretrigger ON tabla FOR {insert.

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). 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_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. de un tipo de datos definido por el usuario o de un tipo de datos proporcionado por Microsoft® SQL Server™. Sintaxis sp_helpsrvrole [[@srvrolename =] 'función'] • sp_srvrolepermission (T-SQL) Devuelve los permisos aplicados a una función fija de servidor. un valor predeterminado o un procedimiento almacenado o desencadenador no cifrados. Sintaxis sp_srvrolepermission [[@srvrolename =] 'función'] • sp_helpdbfixedrole (T-SQL) Devuelve la lista de las funciones fijas de base de datos. o una vista. Procedimientos sp_help • sp_helptext (T-SQL) Imprime el texto de una regla. Sintaxis sp_dbfixedrolepermission [[@rolename =] 'función'] . Sintaxis sp_helpdbfixedrole [@rolename =] 'función' • sp_dbfixedrolepermission (T-SQL) Muestra los permisos para cada función fija de base de datos.12.

Procedimientos de duplicación Utilizados para administrar la duplicación. Sintaxis sp_defaultdb [@loginame =] 'inicioSesión' . 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 del Agente SQL Server Utilizados por el Agente SQL Server para administrar actividades programadas y controladas por sucesos. . Sintaxis sp_addrolemember [@rolename =] 'función'. Procedimientos de consultas distribuidas Utilizados para implementar y administrar consultas distribuidas. Procedimientos de seguridad Utilizados para administrar la seguridad.[@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' [. Procedimientos de cursor Implementan la funcionalidad de variable de cursor.[@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.• 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. Los procedimientos almacenados del sistema se agrupan en estas categorías. [@membername =] 'cuentaSeguridad' 13. • sp_defaultdb (T-SQL) Cambia la base de datos predeterminada de un inicio de sesión. 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.

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 . 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. que indica que son correctos. Para indicar un error. SQL Server no admite la representación a menos que se conecte mediante la Autenticación de Windows. Nota A menos que se documente específicamente lo contrario. Cuando se utiliza la biblioteca de red de memoria compartida. 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. se devuelve un valor distinto de cero. utilice la Autentificación de Windows.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. todos los procedimientos almacenados del sistema devuelven un valor de 0.

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 .

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 .

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. Se han diseñado sólo para uso interno del proveedor de OLE DB para SQL Server. Estos procedimientos almacenados simplemente son el mecanismo que el proveedor o los controladores utilizan para comunicar las peticiones del usuario a SQL Server. El proveedor de OLE DB para SQL Server de Microsoft. 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 . 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. Estos procedimientos almacenados del sistema aceptan la funcionalidad de cursor de ADO.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. Por ejemplo. Dynamic-Link Library) de Bibliotecas de bases de datos utilizan estos procedimientos almacenados para implementar la funcionalidad de una API de bases de datos. No es compatible llamarlos explícitamente desde una aplicación de SQL Server. el controlador de ODBC de SQL Server y la DLL de Bibliotecas de bases de datos. OLE DB.SQL. el controlador de ODBC de SQL Server y la biblioteca de vínculos dinámicos (DLL. 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. 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.

SQL Server utiliza el procedimiento almacenado sp_sdidebug para depurar instrucciones Transact-SQL.Estos procedimientos almacenados del sistema aceptan el modelo de preparación y ejecución para ejecutar instrucciones Transact-SQL en ADO. 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. . 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.