Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > Получение списка таблиц без кластерного индекса


Автор: lv151 21.5.2012, 16:32
Возможно ли с помощью запроса или системной хп получить список таблиц без кластерного индекса?

Автор: Akina 21.5.2012, 16:51
Код

SELECT *
FROM sys.objects
WHERE type = 'U' 
AND OBJECTPROPERTY([object_id], 'CnstIsClustKey') = 0;

Автор: lv151 21.5.2012, 17:00
Не угадал....

Автор: Akina 21.5.2012, 17:49
Не понял ответа...

Автор: lv151 22.5.2012, 08:32
У меня этот запрос не выдал не одной таблицы.

И так тоже нет:

Код

SELECT *
FROM sys.objects
WHERE type = 'U' 
AND OBJECTPROPERTY(object_id, 'CnstIsClustKey') = 0;

Автор: Roha 22.5.2012, 10:33
Код

USE [DBName]
SELECT *
FROM INFORMATION_SCHEMA.TABLES

Автор: lv151 22.5.2012, 10:51
То же самое.

Автор: lv151 22.5.2012, 13:17
Код


 SELECT tables.name AS TableName,
        keys.name AS PKName, 
        OBJECTPROPERTY(OBJECT_ID(keys.name), 'CnstIsClustKey') AS IsClustered,
        OBJECTPROPERTY(OBJECT_ID(keys.name), 'CnstIsNonclustKey') AS IsNonClustered 
 FROM dbo.sysobjects AS keys
 INNER JOIN dbo.sysobjects AS tables
 ON keys.parent_obj = tables.id
 
 WHERE keys.xtype = 'PK'
 AND tables.xtype = 'U'
 
 AND ( OBJECTPROPERTY(OBJECT_ID(keys.name), 'CnstIsNonclustKey') = 1 OR OBJECTPROPERTY(OBJECT_ID(keys.name), 'CnstIsNonclustKey') IS NULL)
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)