USER_ID (Transact-SQL)
Devuelve el número de identificación para un usuario de la base de datos.
Importante
Esta característica se quitará en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. Utilice DATABASE_PRINCIPAL_ID en su lugar.
Se aplica a: SQL Server (SQL Server 2008 a versión actual), Windows Azure SQL Database (Versión inicial a versión actual). |
Convenciones de sintaxis de Transact-SQL
Sintaxis
USER_ID ( [ 'user' ] )
Argumentos
- user
Es el nombre de usuario que se va a emplear. user es de tipo nchar. Si se especifica un valor char, se convierte implícitamente en nchar. Los paréntesis son obligatorios.
Tipos de valor devuelto
int
Comentarios
Cuando se omite user, se da por supuesto que es el usuario actual. Si el parámetro contiene la palabra NULL, devolverá NULL. Cuando se llama a USER_ID después de EXECUTE AS, USER_ID devuelve el identificador del contexto suplantado.
Cuando una entidad de seguridad de Windows que no se ha asignado a un usuario específico de base de datos tiene acceso a una base de datos en forma de pertenencia a un grupo, USER_ID devuelve 0 (el identificador de public). Si este tipo de entidad de seguridad crea un objeto sin especificar un esquema, SQL Server creará un usuario implícito y un esquema asignados a dicha entidad. El usuario creado en casos como éste no se puede utilizar para conectarse a la base de datos. Las llamadas a USER_ID efectuadas por la entidad de seguridad de Windows asignada a un usuario implícito devolverán el identificador de éste.
Se puede utilizar USER_ID en una lista de selección, en una cláusula WHERE y en cualquier lugar en el que se permita una expresión. Para obtener más información, vea Expresiones (Transact-SQL).
Ejemplos
En el ejemplo siguiente se devuelve el número de identificación para el usuario Harold de AdventureWorks2012.
USE AdventureWorks2012;
SELECT USER_ID('Harold');
GO
Vea también
Referencia
sys.database_principals (Transact-SQL)