“-”附近的语法不正确,使用来自 LoginUserRolePermission.zip 的脚本
Incorrect syntax near '-', using a script from LoginUserRolePermission.zip
DECLARE @SQLStatement VARCHAR(4000)
DECLARE @T_DBuser TABLE (DBName SYSNAME, UserName SYSNAME, AssociatedDBRole NVARCHAR(256))
SET @SQLStatement = 'SELECT
''?'' AS DBName,dp.name AS UserName,USER_NAME(drm.role_principal_id) AS AssociatedDBRole
FROM ?.sys.database_principals dp
LEFT OUTER JOIN ?.sys.database_role_members drm ON dp.principal_id = drm.member_principal_id
WHERE dp.sid NOT IN (0x01) AND dp.sid IS NOT NULL
AND dp.type NOT IN (''C'')
AND dp.is_fixed_role <> 1
AND dp.name NOT LIKE ''##%''
AND ''?'' NOT IN (''master'',''msdb'',''model'',''tempdb'')
ORDER BY DBName'
INSERT @T_DBuser
EXEC sp_MSforeachdb @SQLStatement
SELECT *
FROM @T_DBuser
ORDER BY DBName
我正在使用 LoginUserPermission.zip 文件中的代码
https://gallery.technet.microsoft.com/scriptcenter/Get-logins-databases-816f66b2.
当我尝试仅运行此部分时,我收到此错误:(34 行受影响)
Msg 102, Level 15, State 1, Line 3
Incorrect syntax near '-'.
代码的所有其他部分工作正常。我试图仅分解 select 语句,但我收到一条消息
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '?'.
疯狂的是脚本在两周前运行良好。我所要做的就是更改数据库名称并运行。
您的一个数据库的名称中有破折号(“-”)。在“?”两边加上方括号查询的 FROM 和 LEFT JOIN 中的参数。
...
FROM [?].sys.database_principals dp
LEFT OUTER JOIN [?].sys.database_role_members drm
ON dp.principal_id = drm.member_principal_id
...
DECLARE @SQLStatement VARCHAR(4000)
DECLARE @T_DBuser TABLE (DBName SYSNAME, UserName SYSNAME, AssociatedDBRole NVARCHAR(256))
SET @SQLStatement = 'SELECT
''?'' AS DBName,dp.name AS UserName,USER_NAME(drm.role_principal_id) AS AssociatedDBRole
FROM ?.sys.database_principals dp
LEFT OUTER JOIN ?.sys.database_role_members drm ON dp.principal_id = drm.member_principal_id
WHERE dp.sid NOT IN (0x01) AND dp.sid IS NOT NULL
AND dp.type NOT IN (''C'')
AND dp.is_fixed_role <> 1
AND dp.name NOT LIKE ''##%''
AND ''?'' NOT IN (''master'',''msdb'',''model'',''tempdb'')
ORDER BY DBName'
INSERT @T_DBuser
EXEC sp_MSforeachdb @SQLStatement
SELECT *
FROM @T_DBuser
ORDER BY DBName
我正在使用 LoginUserPermission.zip 文件中的代码 https://gallery.technet.microsoft.com/scriptcenter/Get-logins-databases-816f66b2.
当我尝试仅运行此部分时,我收到此错误:(34 行受影响)
Msg 102, Level 15, State 1, Line 3
Incorrect syntax near '-'.
代码的所有其他部分工作正常。我试图仅分解 select 语句,但我收到一条消息
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '?'.
疯狂的是脚本在两周前运行良好。我所要做的就是更改数据库名称并运行。
您的一个数据库的名称中有破折号(“-”)。在“?”两边加上方括号查询的 FROM 和 LEFT JOIN 中的参数。
...
FROM [?].sys.database_principals dp
LEFT OUTER JOIN [?].sys.database_role_members drm
ON dp.principal_id = drm.member_principal_id
...