Professional Documents
Culture Documents
SQL SERVER
INDICE
2. Tablas
• Definiciones completas de tabla
create table [base de datos.[propietario].] nombre tabla ({columna tipo de
datos[restricciones],.......})
ejemplo:
• Modificación de tablas
Alter table [base de datos.[propietario].]nombre tabla [add {columna tipo
[restricciones],......}]
3. Relaciones
Puede confirmar las columnas relacionadas y establecer las propiedades de una nueva
relación.
Enteros
bit
Datos enteros con valor 1 ó 0.
int
Datos enteros (números enteros) comprendidos entre -231 (-2.147.483.648) y 231 - 1
(2.147.483.647).
smallint
Datos enteros comprendidos entre 215 (-32.768) y 215 - 1 (32.767).
tinyint
Datos enteros comprendidos 0 y 255.
Decimales y numéricos
decimal
Datos de precisión y escala numérica fijas comprendidos entre -1038 -1 y 1038 -1.
numérico
Sinónimo de decimal. money y smallmoney
money
Valores de moneda comprendidos entre -263 (-922.337.203.685.477,5808) y 263 - 1
(+922.337.203.685.477,5807), con una precisión de una diezmilésima de la unidad
monetaria.
smallmoney
Valores de moneda comprendidos entre -214.748,3648 y +214.748,3647, con una
precisión de una
diezmilésima de la unidad monetaria.
real
Números con precisión de coma flotante comprendidos entre -3,40E + 38 y 3,40E + 38.
datetime y smalldatetime
datetime
Datos de fecha y hora comprendidos entre el 1 de enero de 1753 y el 31 de diciembre
de 9999, con una precisión de un trescientosavos de segundo, o 3,33 milisegundos.
smalldatetime
Datos de fecha y hora comprendidos entre el 1 de enero de 1900 y el 6 de junio de
2079, con una precisión de un minuto.
Numéricos
cursor
Una referencia a un cursor.
timestamp
Es un número único para toda la base de datos.
uniqueidentifier
Un identificador exclusivo global (GUID).
Cadenas de caracteres
char
Datos de caracteres no Unicode de longitud fija con una longitud máxima de 8.000
caracteres.
varchar
Datos no Unicode de longitud variable con un máximo de 8.000 caracteres.
text
Datos no Unicode de longitud variable con una longitud máxima de 231 - 1
(1.147.483.647) caracteres.
Cadenas de caracteres Unicode
nchar
Datos Unicode de longitud variable con una longitud máxima de 4.000 caracteres.
nvarchar
Datos Unicode de longitud variable con una longitud máxima de 4.000 caracteres.
sysname es el tipo de datos suministrado por el sistema y definido por el usuario que
es sinónimo de nvarchar(128) y que se utiliza para hacer referencia a nombres de
objetos de bases de datos.
ntext
Datos Unicode de longitud variable con una longitud máxima de 230 - 1
1.073.741.823) caracteres.
Cadenas binarias
binary
Datos binarios de longitud fija con una longitud máxima de 8.000 bytes.
varbinary
Datos Unicode de longitud variable con una longitud máxima de 8.000 bytes.
image
Datos Unicode de longitud variable con una longitud máxima de 231 - 1
(1.147.483.647) bytes.
Sinónimos
Los tipos de datos sinónimos se incluyen por compatibilidad con SQL-92.
• Tipos definidos por el Usuario: Permite que el usuario defina tipos de datos como por
Ej.: el código de producto, que se basa en el tipo de datos "char" y que consta de dos
letras mayúsculas seguidas de un numero de proveedor de 5 cifras. Los tipos de datos
definidos por el usuario también se llaman UDT se basan en el tipo de datos del
sistema, se pueden utilizar cuando varias tablas deben almacenar el mismo tipo de
datos en una columna, tienen exactamente el mismo tipo de datos en una columna y
desea asegurarse de que dicha columna tiene exactamente el mismo tipo de datos en
todas las tablas, longitud, condición de aceptación de valores nulos,...
5. Rules
Cuando se enlaza una regla a una columna o un tipo de datos definido por el usuario,
especifica los valores aceptables que se pueden insertar en esa columna. Las reglas,
que son una característica de compatibilidad con versiones anteriores, realizan
algunas de las mismas funciones que las restricciones de comprobación. Las
restricciones CHECK, creadas mediante la palabra clave CHECK de ALTER o CREATE
TABLE, son la forma preferida y estándar de restringir los valores de una columna (se
pueden definir restricciones múltiples en una o múltiples columnas). Una columna o
tipo de datos definido por el usuario sólo puede tener una regla enlazada. Sin
embargo, una columna puede tener una regla y una o más restricciones de
comprobación asociadas con ella. Cuando esto es así, se evalúan todas las
restricciones.
Sintaxis
Ejemplos
sp_bindrule (T-SQL)
Enlaza una regla a una columna o a un tipo de datos definido por el usuario.
Sintaxis
sp_bindrule [@rulename =] 'regla',
[@objname =] 'nombreObjeto'
[, [@futureonly =] 'indicadorSóloFuturo'
Ejemplos
USE master
EXEC sp_bindrule 'today', 'employees.[hire date]'
USE master
EXEC sp_bindrule 'rule_ssn', 'ssn'
C. Utilizar indicadorSóloFuturo
Este ejemplo enlaza la regla rule_ssn al tipo de datos definido por el usuario ssn.
Como se especifica futureonly, esto no afecta a ninguna de las columnas existentes de
tipo ssn.
USE master
EXEC sp_bindrule 'rule_ssn', 'ssn', 'futureonly'
sp_unbindrule (T-SQL)
Desasocia una regla de una columna o de un tipo de datos definido por el usuario en la
base de datos actual.
Sintaxis
sp_unbindrule [@objname =] 'nombreObjeto'
[, [@futureonly =] 'indicadorSóloFuturo']
Ejemplos
C. Utilizar indicadorSóloFuturo
En este ejemplo se desasocia la regla del tipo de datos definido por el usuario ssn sin
afectar a las columnas ssn existentes.
Sintaxis
Sintaxis
CREATE DEFAULT predeterminado
AS expresiónConstante
Ejemplos
USE pubs
GO
CREATE DEFAULT phonedflt AS 'unknown'
sp_bindefault (T-SQL)
Enlaza un valor predeterminado a una columna o a un tipo de datos definido por el
usuario.
Sintaxis
sp_bindefault [@defname =] 'predeterminado',
[@objname =] 'nombreObjeto'
[, [@futureonly =] 'indicadorSóloFuturo']
Ejemplos
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 también heredan el
valor predeterminado def_ssn a menos que se especifique futureonly en el valor
indicadorSóloFuturo o que haya un valor predeterminado enlazado directamente a la
columna. Los valores predeterminados enlazados a columnas siempre tienen
preferencia sobre los enlazados a tipos de datos.
USE master
EXEC sp_bindefault 'def_ssn', 'ssn'
C. Utilizar indicadorSóloFuturo
Este ejemplo enlaza el valor predeterminado def_ssn al tipo de datos definido por el
usuario ssn. Como se especifica futureonly, esto no afecta a ninguna de las columnas
existentes de tipo ssn.
USE master
EXEC sp_bindefault 'def_ssn', 'ssn', 'futureonly'
sp_unbindefault (T-SQL)
Desasocia (quita) un valor predeterminado de una columna o de un tipo de datos
definido por el usuario en la base de datos actual.
Sintaxis
sp_unbindefault [@objname =] 'nombreObjeto'
[, [@futureonly =] 'indicadorSóloFuturo']
Sintaxis
DROP DEFAULT {predeterminado} [,…n]
7. ALTER TABLE (T-SQL)
Modifica una definición de tabla al alterar, agregar o quitar columnas y restricciones,
o al deshabilitar o habilitar restricciones y desencadenadores.
Sintaxis
ALTER TABLE tabla [ALTER COLUMN nombreColumna
{ nuevoTipoDatos [ (precisión[, escala] ) ]
[ NULL | NOT NULL ]
| {ADD | DROP} ROWGUIDCOL
}
]
| ADD
{ [ <definiciónColumna> ]
| nombreColumna AS expresiónCalculadaColumna
}[,...n]
| [WITH CHECK | WITH NOCHECK] ADD
{ <restricciónTabla> }[,...n]
| DROP
{ [CONSTRAINT] nombreRestricción
| COLUMN columna
}[,...n]
| {CHECK | NOCHECK} CONSTRAINT
{ALL | nombreRestricción[,…n]}
| {ENABLE | DISABLE} TRIGGER
{ALL | nombreDesencadenador[,…n]}
<definiciónColumna> ::= { nombreColumna tipoDatos }
[ [ DEFAULT expresiónConstante ]
| [ IDENTITY [(inicialización, incremento ) [NOT FOR REPLICATION] ] ]
]
[ ROWGUIDCOL ]
[ <restricciónColumna>] [ ...n]
<restricciónColumna> ::= [CONSTRAINT nombreRestricción]
{
[ NULL | NOT NULL ]
| [ { PRIMARY KEY | UNIQUE }
[CLUSTERED | NONCLUSTERED]
[WITH FILLFACTOR = factorRelleno]
[ON {grupoArchivos | DEFAULT} ]]
]
| [ [FOREIGN KEY]
REFERENCES tablaRef [(columnaRef) ]
[NOT FOR REPLICATION]
]
| CHECK [NOT FOR REPLICATION]
(expresiónLógica)
}
<restricciónTabla> ::= [CONSTRAINT nombreRestricción]
{ [ { PRIMARY KEY | UNIQUE }
[ CLUSTERED | NONCLUSTERED]
{ ( columna[,...n] ) }
[ WITH FILLFACTOR = factorRelleno]
[ON {grupoArchivos | DEFAULT} ]
]
| FOREIGN KEY
[(columna[,...n])]
REFERENCES tablaReferencia [(columnaReferencia[,...n])]
[NOT FOR REPLICATION]
| DEFAULT expresiónConstante
[FOR columna]
| CHECK [NOT FOR REPLICATION]
(expresiónLógica)
}
Ejemplos
A. Alterar una tabla para agregar una nueva columna
El ejemplo siguiente agrega una columna que permite valores nulos y a la que no se
han proporcionado valores mediante una definición DEFAULT. Cada fila tendrá un valor
NULL en la nueva columna.
C. Alterar una tabla para agregar una columna con una restricción
El ejemplo siguiente agrega una nueva columna con una restricción UNIQUE.
8. Vistas
Antes de crear una vista, considere estas indicaciones:
• Sólo puede crear vistas en la base de datos actual. Sin embargo, las tablas y las
vistas a las que se haga referencia desde la nueva vista pueden encontrarse en otras
bases de datos e, incluso, en otros servidores, si la vista se define mediante consultas
distribuidas.
• Los nombres de las vistas deben seguir las reglas para los identificadores y ser únicos
para cada usuario. Además, el nombre debe ser distinto del de cualquier tabla de las
que el usuario sea propietario.
• La consulta que defina a la vista no puede incluir las cláusulas ORDER BY,
COMPUTE o COMPUTE BY, ni la palabra clave INTO.
• No puede emitir consultas de texto en una vista, aunque una definición de vista
puede incluir una consulta de texto si ésta hace referencia a una tabla configurada
para indización de texto.
Sintaxis
CREATE VIEW nombreVista [(columna [,…n])]
[WITH ENCRYPTION]
AS
instrucciónSelección
[WITH CHECK OPTION]
o Drop view vista
9. Procedimientos almacenados
Es una colección de instrucciones Transact-SQL, que puede tomar y devolver
parámetros proporcionados por el usuario. Los procedimientos se pueden crear para
uso permanente o para uso temporal en la sesión de un usuario (procedimiento local
temporal) o para el uso temporal en todas las sesiones del usuario (procedimiento
temporal global). Los procedimientos almacenados se pueden crear también para que
se ejecuten automáticamente cuando se inicia Microsoft® SQL Server™.
Sintaxis
CREATE PROC[EDURE] nombreProcedimiento [;número]
[
{@parámetro tipoDatos} [VARYING] [= predeterminado] [OUTPUT]
]
[,...n]
[WITH
{
RECOMPILE
| ENCRYPTION
| RECOMPILE, ENCRYPTION
}
]
[FOR REPLICATION]
AS
instrucciónSQL [...n]
-Las sentencias SQL tienen un limite de 255 procedimientos almacenados (es decir
hasta 255 filas).
EJERCICIO:
Hacer un procedimiento que devuelva los nombres de todos los autores que han
publicado un libro con un editor cuyo nombre y apellido se pasaran como parametros
de entrada. La base de datos a utilizar es pubs
SOLUCIÓN:
create proc ejemplo1 @nombre varchar(20), @apellido varchar(20) as select
au_lname,
au_fname, title, pub_name from authors, titles, publishers, titleauthor where
au_fname=@nombre and au_lname=@apellido and authors.au_id=titleauthor.au_id and
titles.title_id=titleauthor.title_id and titles.pub_id=publishers.pub_id
PARA EJECUTARLO:
execute ejemplo1 @nombre='johnson', @apellido='white'
EJERCICIO:
Procedimiento que devuelve todos los autores que han publicado un libro con un editor
determinado que se pasaran como variable de entrada.
SOLUCION:
create procedure ejemplo2 @editor varchar(20)='algodata Infosyste' as select
au_lname,
au_fname, pub_name from
authors a, publishers p, titles t, titleauthor ta where @editor=p.pub_name
and t.title_id=ta.title_id and t.pub_id=p.pub_id
nota: despues de los nombres de las tablas se pone la inicial, para renombrarla y
despues
ser mas facil poner su nombre. se llaman alias
----------------------------------------------------------------------------------------------------------
---
- Un procedimiento no puede tener sentencias de creación:
CREATE VIEW
CREATE DEFAULT
CREATE TRIGGER
CREATE ROLES
pero sí, sentencias de eliminación como DROP.
EJERCICIO:
Al introducir el nombre del alumno queremos ver también su nota:
SOLUCION:
CREATE PROCEDURE PROC1 @VAR VARCHAR(30)=NULL
AS IF @VAR IS NULL PRINT 'INTRODUCE EL NOMBRE DEL ALUMNO'
ELSE SELECT NOMBRE, NOTAS FROM TABLE1 WHERE
NOMBRE=@VAR
EJERCICIO:
Como poder utilizar los valores devueltos de un procedimiento como variable de
entrada de a otro procedimiento.
SOLUCION:
Este procedimiento devuelve 100 si un determinado alumno de una tabla esta suspenso
y 200 si esta aprobado.
Definir otro procedimiento que utiliza este primero y presenta un mensaje indicando si
un alumno esta aprobado o no
Funciones
Las funciones son una herramienta eficaz que permite agrupar usuarios en una única
unidad a la que se pueden aplicar permisos. Los permisos concedidos, denegados o
retirados de una función se aplican a todos los miembros de la función. Puede
establecer una función que represente uno de los tipos de trabajo de su organización y
conceder los permisos apropiados a dicha función. Cuando los trabajadores cambian de
puesto de trabajo, sólo tiene que asignarlos a la nueva función; cuando dejen un
puesto, elimínelos de la función que represente dicho tipo de trabajo. No es necesario
que conceda, deniegue o retire permisos repetitivamente a cada persona que se
incorpore o deje la organización. Los permisos se aplican automáticamente cuando los
usuarios se definen como miembros de una función.
Los grupos de Windows NT se pueden utilizar de forma muy similar a las funciones.
Para obtener más información, consulte Grupos.
Es más sencillo administrar los permisos en una base de datos si define un conjunto de
funciones basadas en los tipos de trabajo y asigna a cada función los permisos
aplicables para desempeñar dicho trabajo. A partir de este punto, sólo tiene que pasar
los usuarios de una función a otra, en lugar de tener que administrar los permisos de
cada usuario de forma individual. Si la función asociada con un trabajo cambia, es más
sencillo cambiar una sola vez los permisos de la función y hacer que los cambios se
apliquen automáticamente a todos los miembros de la función.
Puede obtener la lista de las funciones fijas del servidor mediante sp_helpsrvrole y
obtener los permisos específicos de cada función mediante sp_srvrolepermission.
Cada base de datos tiene un conjunto de funciones fijas de la base de datos. Si bien
todas las bases de datos tienen funciones con estos mismos nombres, el alcance de
cada función individual es sólo su base de datos concreta. Por ejemplo, si Database1 y
Database2 tienen ambas un Id. de usuario UserX, la inclusión de UserX en la función
fija db_owner de la base de datos en Database1 no hace que UserX sea miembro de
la función fija db_owner en Database2 .
11. Triggers
Es un tipo especial de procedimiento almacenados que se ejecutan automaticamente
como respuesta a una determinada modificacion de una tabla.
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 información acerca de un objeto de la base de datos (cualquier objeto de la
tabla sysobjects), de un tipo de datos definido por el usuario o de un tipo de datos
proporcionado por Microsoft® SQL Server™.
Sintaxis
sp_help [[@objname =] nombre]
• sp_helpfile (T-SQL)
Devuelve los nombres físicos y los atributos de los archivos asociados con la base de
datos actual. Utilice este procedimiento almacenado para determinar los nombres de
los archivos que vaya a asignar o quitar del servidor.
Sintaxis
sp_helpfile [[@filename =] 'nombre']
• sp_helpsrvrole (T-SQL)
Devuelve la lista de las funciones fijas de servidor de Microsoft® SQL Server™.
Sintaxis
sp_helpsrvrole [[@srvrolename =] 'función']
• sp_srvrolepermission (T-SQL)
Devuelve los permisos aplicados a una función fija de servidor.
Sintaxis
sp_srvrolepermission [[@srvrolename =] 'función']
• sp_helpdbfixedrole (T-SQL)
Devuelve la lista de las funciones fijas de base de datos.
Sintaxis
sp_helpdbfixedrole [@rolename =] 'función'
• sp_dbfixedrolepermission (T-SQL)
Muestra los permisos para cada función fija de base de datos.
Sintaxis
sp_dbfixedrolepermission [[@rolename =] 'función']
• sp_grantlogin (T-SQL)
Permite a una cuenta de usuario o de grupo de Microsoft® Windows NT® conectar con
Microsoft SQL Server™ mediante la autenticación de Windows NT.
• sp_defaultdb (T-SQL)
Cambia la base de datos predeterminada de un inicio de sesión.
Sintaxis
sp_defaultdb [@loginame =] 'inicioSesión' ,[@defdb =] 'baseDatos'
• sp_addrole (T-SQL)
Crea una nueva función de Microsoft® SQL Server™ en la base de datos actual.
Sintaxis
sp_addrole [@rolename =] 'función' [,[@ownername =] 'propietario']
• sp_addrolemember (T-SQL)
Agrega una cuenta de seguridad como miembro de una función de Microsoft® SQL
Server™ existente en la base de datos actual.
Sintaxis
sp_addrolemember [@rolename =] 'función',
[@membername =] 'cuentaSeguridad'
Categoría Descripción
Procedimientos de catálogo Implementan las funciones del diccionario de datos de
ODBC y aíslan las aplicaciones de ODBC de los cambios en las tablas subyacentes del
sistema. Procedimientos de cursor Implementan la funcionalidad de variable de
cursor. Procedimientos de consultas distribuidas Utilizados para implementar y
administrar consultas distribuidas.
Procedimientos de duplicación
Utilizados para administrar la duplicación.
Procedimientos de seguridad
Utilizados para administrar la seguridad.
Procedimientos del sistema
Utilizados para el mantenimiento general de SQL Server.
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.
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 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
sp_execute
sp_prepare
sp_unprepare