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

今天,让添加两个字段创建者,创建日期,创建者默认值设置为当前登录人,创建日期为当前时间。

在网上查了一下,当前登录人用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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值