This topic has been archived. It cannot be replied.
-
工作学习 / 专业技术讨论 / 请教SQL问题:
在SQL Server 2000中运行
select b.name, a.name from sysindexes a, sysobjects b
where a.id = b.id and b.type = 'U' and a.name not like '_WA%' and a.indid not in (0, 255) and a.used <> 0有返回结果, 到SQL Server 2005中,没有返回结果。同一个数据库。
why?
-tonyhao(tonyhao);
2007-5-17
{68}
(#3682366@0)
-
SQL2005中已经没有sysobjects,sysindexes 这些表了。
-bdbs(不多不少);
2007-5-17
(#3683341@0)
-
急啊, 它们都跑哪里去了? 还是改名了?
-tonyhao(tonyhao);
2007-5-18
(#3684365@0)
-
找到映射表了, 可还是不对,是不SQL语句需要修改啊?
-tonyhao(tonyhao);
2007-5-18
(#3684398@0)
-
肯定要改。保留的sys.sysobjects什么的只是为了尽可能的backward compatible。我没有仔细看你的query,你看一下2005下的新提供的view,还有一些function,估计有更简单的方法。
-bdbs(不多不少);
2007-5-18
(#3685181@0)
-
as I remembered they are changed to system views.
-bohu(利人不损己常开心);
2007-5-18
(#3684877@0)
-
现在a.name直接就是index的name, 所以条件a.indid not in (0, 255)已经不需要了。现在问题是 a.used这个field已经被删除了, 不知道用什么来替代这个条件。
-tonyhao(tonyhao);
2007-5-18
(#3685042@0)
-
现在除了a.used这个条件, SQL语句是这样:select b.name, a.name from sys.indexes a, sys.objects b where a.object_id = b.object_id and b.type = 'U' and a.name not like '_WA%'
-tonyhao(tonyhao);
2007-5-18
(#3685083@0)