您的位置:首页 > 数据库

SQL SERVER中将某字段默认值设置为当前登录名

2013-08-20 14:04 573 查看
今天,让添加两个字段创建者,创建日期,创建者默认值设置为当前登录人,创建日期为当前时间。

在网上查了一下,当前登录人用SUSER_SNAME.

先备份一下表,再添加字段

--备份表

USE DBA;

SELECT * INTO DBA.DBO.SubjectDB_PRODEFINE_ProductInfoExtend_BAK_20130820

FROM SubjectDB.PRODEFINE.ProductInfoExtend

--添加字段

ALTER TABLE SubjectDB.PRODEFINE.ProductInfoExtend ADD  CreateTime DATETIME DEFAULT GETDATE();

ALTER TABLE SubjectDB.PRODEFINE.ProductInfoExtend ADD Creator NVARCHAR(100) DEFAULT SUSER_SNAME();

 

以下是参考的SUSER_SNAME相关资料:

Returns the login identification name from a user's security identification number (SID).

Syntax
SUSER_SNAME(
[ server_user_sid ] )

Arguments
server_user_sid

Is the user security identification number.server_user_sid, which is optional, is
varbinary(85). server_user_sid can be the security identification number of any Microsoft® SQL Server™ login or Microsoft Windows NT® user or group. Ifserver_user_sid is not specified, information about the current user is
returned.
Return Types
nvarchar(256)

Remarks
When specifying a SQL Server login using SQL Server Authentication, the user must be granted permission to connect to SQL Server. Usesp_addlogin or SQL Server Enterprise Manager to
grant this permission. However, when specifying a Windows NT user or group using Windows Authentication, this user or group does not have to be granted permission to connect to SQL Server.

SUSER_SNAME can be used as a DEFAULT constraint in either ALTER TABLE or CREATE TABLE.

System functions can be used in the select list, in the WHERE clause, and anywhere an expression is allowed, and must always be followed by parentheses (even if no parameter is specified).

Examples
A. Use SUSER_SNAME
This example returns the login name for the security identification number with a value of 0x01.

SELECT SUSER_SNAME(0x01)

B. Use SUSER_SNAME with a Windows NT user's security identification number
This example returns the login name for the Windows NT user's security identification number, obtained by using SUSER_SID.

SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000)

C. Use SUSER_SNAME as a DEFAULT constraint
This example uses SUSER_SNAME as a DEFAULT constraint in a CREATE TABLE statement.

USE pubs
GO
CREATE TABLE sname_example
(
login_sname sysname DEFAULT SUSER_SNAME(),
employee_id uniqueidentifier DEFAULT NEWID(),
login_date  datetime DEFAULT GETDATE()
)
GO
INSERT sname_example DEFAULT VALUES
GO

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: