Поделиться через


USER_ID (Transact-SQL)

Возвращает идентификатор пользователя базы данных.

Важное примечаниеВажно!

В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется. Используйте вместо этого DATABASE_PRINCIPAL_ID.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

USER_ID ( [ 'user' ] )

Аргументы

  • user
    Используемое имя пользователя. Аргумент user имеет тип nchar. Если указано значение типа char, оно неявно преобразуется к типу nchar. Необходимо поставить скобки.

Возвращаемые типы

int

Замечания

Если аргумент user не указан, то подразумевается текущий пользователь. Если содержит слово NULL, возвращается значение NULL. При вызове функции USER_ID после предложения EXECUTE AS она возвращает идентификатор олицетворенного контекста.

Если участник Windows, не сопоставленный с указанным пользователем базы данных, получает доступ к базе данных через участие в группе, функция USER_ID возвращает значение 0 (идентификатор пользователя public). Если такой участник создает объект без указания схемы, то SQL Server создаст неявного пользователя и схему, которые сопоставлены с участником Windows. Пользователь, созданный таким образом, не может быть использован для подключения к базе данных. Вызовы функции USER_ID участником Windows, сопоставленным с неявным пользователем, возвратят идентификатор неявного пользователя.

Функцию USER_ID можно использовать в списке выбора, в предложении WHERE и в любом месте, где разрешается выражение. Дополнительные сведения см. в разделе Выражения (Transact-SQL).

Примеры

В следующем примере возвращается идентификатор пользователя Harold базы данных AdventureWorks2008R2.

USE AdventureWorks2008R2;
SELECT USER_ID('Harold');
GO