Sql 基于sid查询sys.database_主体
我在这里遇到了这种情况,我需要检查sys.database_principals表中是否存在该用户,但要基于其SID 我试图执行简单的查询Sql 基于sid查询sys.database_主体,sql,sql-server,azure-sql-database,Sql,Sql Server,Azure Sql Database,我在这里遇到了这种情况,我需要检查sys.database_principals表中是否存在该用户,但要基于其SID 我试图执行简单的查询 SELECT * FROM sys.database_principal where [sid] = '0x............' 但它什么也没回来。 因为sid是varbinary(85)。我需要进行一些转换。不要将二进制文字括在引号中。否则,该值将被视为字符串文字而不是二进制文字 sid varbinary(85)数据类型的值低于varchar文
SELECT *
FROM sys.database_principal
where [sid] = '0x............'
但它什么也没回来。
因为sid是varbinary(85)。我需要进行一些转换。不要将二进制文字括在引号中。否则,该值将被视为字符串文字而不是二进制文字 sid varbinary(85)数据类型的值低于varchar文字,因此sid值将从二进制转换为varchar进行比较,结果字符的比较结果将不相等 更正的查询:
SELECT *
FROM sys.database_principal
WHERE [sid] = 0x............;
不要将二进制文字括在引号中。否则,该值将被视为字符串文字而不是二进制文字 sid varbinary(85)数据类型的值低于varchar文字,因此sid值将从二进制转换为varchar进行比较,结果字符的比较结果将不相等 更正的查询:
SELECT *
FROM sys.database_principal
WHERE [sid] = 0x............;