我刚刚找到了一种适当的解决方案,以解决如何查找键重复但在所有列中都不重复的行?,对存储过程进行了编码,然后得知该数据库卡在了SQL Server 2000中。
当然,我的解决方案在很大程度上依赖于Common Table Expressions。
谁能为我提供一套转换回SQL Server 2000方言的规则?
请注意,我有以下内容:
; WITH CTE1 AS ( ... ), CTE2 AS (SELECT ... FROM CTE1 ... ), CTE3 AS (SELECT ... FROM CTE1 INNER JOIN CTE2 ...) SELECT * FROM CTE3 WHERE criteria ORDER BY sequence
这似乎使事情变得更加有趣。
更新: 所有CTE都不是递归的。
两种选择(允许的,都不是漂亮的-这就是为什么我们喜欢CTE的原因)
选项1
创建一个临时表(#,或者足够小@),并像使用CTE一样引用它。完成后放下。
#
@
选项2 将整个CTESELECT作为表格放在FROM查询的一部分中。
SELECT
FROM
SELECT * FROM (SELECT * FROM table1) oldCTE