Moh*_*dil 27 sql t-sql sql-server
MSDN文档说明了SUSER_SNAME函数:
从用户的安全标识号(SID)返回登录标识名称.
更重要的是,它说明了SUSER_NAME功能:
返回用户的登录标识名称.
但是,当我执行以下SQL语句时,我得到相同的结果:
SELECT SUSER_NAME();
SELECT SUSER_SNAME();
Run Code Online (Sandbox Code Playgroud)
那么,有什么区别,我应该使用哪一个?是否有一种情况我应该使用一种而不是另一种情况?
请指教,
提前致谢 :)
And*_*mar 31
如果在没有参数的情况下调用函数,它们将返回相同的值.但他们确实采取了不同的论点:
varbinary(85) SID
登录名作为参数integer principal_id
登录你可以这样验证:
select suser_name(principal_id)
, suser_name(sid)
, suser_sname(principal_id)
, suser_sname(sid)
from sys.server_principals
where name = suser_name()
Run Code Online (Sandbox Code Playgroud)
只有第一列和最后一列将返回非空值.