将sys.[views]
转换为关键值对以与另一台服务器上的值进行比较以进行一致性测试。我遇到了一个返回错误的问题。列与未转发列表中其他列的类型冲突
消息8167,级别16,状态1,第51行
的类型与在UNPIVOT列表中指定的其他列的类型列“类型”的冲突。
查询:
SELECT
sourceUnpivoted.idServer,
sourceUnpivoted.sourceServerName,
sourceUnpivoted.name,
sourceUnpivoted.columnName,
sourceUnpivoted.columnValue
FROM (
SELECT
CAST('1' AS VARCHAR(255)) AS idServer,
CAST('thisOne' AS VARCHAR(255)) AS sourceServerName,
CAST('theDatabase' AS VARCHAR(255)) AS sourceDatabaseName,
CAST(name AS VARCHAR(255)) AS name,
CAST(object_id AS VARCHAR(255)) AS object_id,
CAST(principal_id AS VARCHAR(255)) AS principal_id,
CAST(schema_id AS VARCHAR(255)) AS schema_id,
CAST(parent_object_id AS VARCHAR(255)) AS parent_object_id,
CAST(type AS VARCHAR(255)) AS type,
CAST(type_desc AS VARCHAR(255)) AS type_desc,
CAST(create_date AS VARCHAR(255)) AS create_date,
CAST(lock_escalation_desc AS VARCHAR(255)) AS lock_escalation_desc
...
FROM noc_test.dbo.stage_sysTables
) AS databaseTables
UNPIVOT (
columnValue FOR columnName IN (
object_id,
principal_id,
schema_id,
parent_object_id,
type,
type_desc,
create_date,
lock_escalation_desc
)
) AS sourceUnpivoted
为什么这个不喜欢[type]
,[type_desc]
,[lock_escalation_desc]
??? 我也试过CONVERT(VARCHAR(255),type) AS type
您是否亲自将所有这些'
'添加到您的问题中?如果是这样,你没有达到你认为“必须有更好的方式”的点吗?如果您要发布代码,请突出显示它的代码块,然后点击代码格式化按钮 - 它保留换行符,并添加语法高亮显示。 –
好生病下次再尝试一下。 – DarkRiver