Dan*_*ett 6 sql t-sql sql-server
以下T-SQL代码:
CREATE TABLE #exclude(name VARCHAR(256))
INSERT INTO #exclude VALUES('someprefix_someprocedure')
SELECT 'someschema.' + sys.objects.name
FROM sys.objects
LEFT JOIN #exclude ON sys.objects.name = #exclude.name
WHERE sys.objects.name LIKE 'someprefix_%'
AND type IN ('FN', 'TR', 'P')
AND #exclude.name IS NULL
ORDER BY sys.objects.name ASC
Run Code Online (Sandbox Code Playgroud)
返回此错误:
Msg 468,Level 16,State 9,Line 4
无法解决等于操作之间
Danish_Norwegian_CI_AS和之间的排序规则冲突SQL_Latin1_General_CP1_CI_AS.
我尝试将此附加到查询,但它仍然返回相同的错误:
COLLATE SQL_Latin1_General_CP1_CI_AS ASC
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
小智 2
将以下内容添加到 WHERE 或 ON (JOIN) 子句中产生此错误的任何字段:
COLLATE DATABASE_DEFAULT。
例如(上面你的问题)
CREATE TABLE #exclude(name VARCHAR(255))
INSERT INTO #exclude VALUES('someprefix_someprocedure')
SELECT 'someschema.' + sys.objects.name
FROM sys.objects
LEFT JOIN #exclude ON sys.objects.name COLLATE DATABASE_DEFAULT = #exclude.name COLLATE DATABASE_DEFAULT
WHERE sys.objects.name LIKE 'someprefix_%'
AND type IN ('FN', 'TR', 'P')
AND #exclude.name IS NULL
ORDER BY sys.objects.name ASC
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22466 次 |
| 最近记录: |