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