SQL Server排序规则解决

时间:2015-11-17 14:00:26

标签: sql sql-server collation

select 'GRANT '+permission_name+' ON ASSEMBLY::['+ sa.name +'] to
['+user_name(dp.grantee_principal_id)+'] ;' from 
sys.database_permissions dp  inner join  sys.certificates sa on 
sa.certificate_id   = dp.major_id

2 个答案:

答案 0 :(得分:1)

您需要在JOINS中添加COLLATE DATABASE_DEFAULT

SELECT 'GRANT '+permission_name+' ON ASSEMBLY::['+ sa.name +'] to ['+user_name(dp.grantee_principal_id)+'] ;'
FROM sys.database_permissions dp
INNER JOIN sys.certificates sa ON sa.certificate_id COLLATE DATABASE_DEFAULT = dp.major_id COLLATE DATABASE_DEFAULT

答案 1 :(得分:0)

也许这会奏效。

select 'GRANT '+permission_name+' ON ASSEMBLY::['+ sa.name +'] to
['+user_name(dp.grantee_principal_id)+'] ;'
from sys.database_permissions dp  inner join  sys.certificates sa on 
sa.certificate_id COLLATE DATABASE_DEFAULT = dp.major_id COLLATE DATABASE_DEFAULT