【发布时间】:2015-03-30 03:07:54
【问题描述】:
在我的 SQL 中,我需要比较 SQLServer 2008R2 中两个表之间的数据,以返回存在不匹配的行(使用 EXCEPT)并在其他情况下同样匹配行(INTERSECT)。问题是,某些列具有NTEXT 数据类型(SQLServer),当存在具有NTEXT 列的此类表时,SQLServer 会出错。
例子:
SELECT * FROM table_pre
EXCEPT
SELECT * FROM table_post
以上操作报错——
'The ntext data type cannot be selected as DISTINCT because it is not comparable.'
我相信表(table_pre、table_post)至少有一列数据类型 = NTEXT,这会导致比较失败。
问题 -
1. 有没有办法从上述比较中排除这些NTEXT 列,而无需我明确列出列名并排除问题列?涉及大量列,明确列出并不容易。
2. 我是否可以单独将NTEXT 列显式转换/转换为VARCHAR,而不必列出其余列?
3. 或者,一般来说,我可以通过在此类比较中列出某些列来排除某些列吗?
任何建议,非常感谢!谢谢。
【问题讨论】:
-
当然很简单,只需要在SMSS的表格中点击并拖动“列”即可。
-
1.否 2. 否 3. 否 - 需要列出所有列或破解stackoverflow.com/questions/729197/…的解决方案@
标签: sql sql-server-2008 ntext