Sql server Azure SQL数据库表变量排序规则

Sql server Azure SQL数据库表变量排序规则,sql-server,azure,azure-sql-database,Sql Server,Azure,Azure Sql Database,Azure SQL Server有一个固定的SQL拉丁1\u常规\u CP1\u CI\u排序规则。我有一个Azure SQL数据库,其中包含拉丁语1_General_CI_AS的排序规则。在创建表变量并连接到数据库表时,我似乎遇到了排序规则冲突错误。代码如下: DECLARE @resultingRoles TABLE ([MemberRoleName] NVARCHAR(256) NOT NULL PRIMARY KEY) INSERT INTO @resultingRoles SELEC

Azure SQL Server有一个固定的SQL拉丁1\u常规\u CP1\u CI\u排序规则。我有一个Azure SQL数据库,其中包含拉丁语1_General_CI_AS的排序规则。在创建表变量并连接到数据库表时,我似乎遇到了排序规则冲突错误。代码如下:

DECLARE @resultingRoles TABLE ([MemberRoleName] NVARCHAR(256) NOT NULL PRIMARY KEY)

INSERT INTO @resultingRoles
SELECT DISTINCT([MemberRoleName]) FROM [RolesInRoles]
    WHERE
[ApplicationName] = @applicationName AND
[MemberRoleName]  IN (@role0,@role1,@role2)
WHILE (@@ROWCOUNT>0)
    BEGIN   
    INSERT INTO @resultingRoles
    SELECT DISTINCT([roles].[TargetRoleName])
    FROM [RolesInRoles] AS [roles] 
    INNER JOIN @resultingRoles sj ON sj.[MemberRoleName] = [roles].[MemberRoleName] 
    LEFT JOIN @resultingRoles lf on [roles].[TargetRoleName] = lf.[MemberRoleName]
    WHERE lf.[MemberRoleName] IS NULL
    AND [roles].[ApplicationName] = @applicationName
END
这将导致以下错误:

无法解决等于操作中“Latin1_General_CI_AS”和“SQL_Latin1_General_CP1_CI_AS”之间的排序规则冲突

我认为这是因为制表符变量列MemberRoleName是使用SQL Server排序规则而不是数据库排序规则创建的。我的期望是使用数据库排序规则-我错了吗

有没有办法检查表变量的排序规则

编辑:我无法更改此SQL代码以显式设置排序规则

尝试使用

 DECLARE @resultingRoles TABLE ([MemberRoleName] NVARCHAR(256) COLLATE Latin1_General_CI_AS NOT NULL PRIMARY KEY)

这不是我的应用程序代码-我无法对其进行更改。我不确定您要求的是什么。该表没有排序规则。。它将是表中的text/char列。此外,表变量和临时表是在tempdb中创建的,因此将使用服务器排序规则。您可能想了解一下:我问的是表变量是否应使用服务器排序规则或数据库排序规则。我提到的表变量将使用服务器排序规则,但我认为数据库排序规则中将包含一个变量