我有一个脚本,用于编写我在 SQL 2014 上使用的用户权限的脚本,该脚本运行良好,但是当我尝试使用 SQL 2008 时,出现以下错误:
消息 515,级别 16,状态 2,第 4 行无法将值 NULL 插入到列“UserName”、表“@DB_USers”中;列不允许空值。插入失败。该语句已终止。
(0 行受影响)
DECLARE @DB_USers TABLE
(DBName sysname, UserName sysname, LoginType sysname, AssociatedRole varchar(max),create_date datetime,modify_date datetime)
INSERT @DB_USers
EXEC sp_MSforeachdb
'
use [?]
SELECT ''?'' AS DB_Name,
case prin.name when ''dbo'' then prin.name + '' (''+ (select SUSER_SNAME(owner_sid) from master.sys.databases where name =''?'') + '')'' else prin.name end AS UserName,
prin.type_desc AS LoginType,
isnull(USER_NAME(mem.role_principal_id),'''') AS AssociatedRole ,create_date,modify_date
FROM sys.database_principals prin
LEFT OUTER JOIN sys.database_role_members mem ON …Run Code Online (Sandbox Code Playgroud)