Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Таблицы с двойным ключом  [new]
nkad
Member

Откуда: Москва
Сообщений: 36
Необходимо составить список всех таблиц базы с двойным ключом. Подскажите, как это сделать.
14 июл 11, 13:52    [10973541]     Ответить | Цитировать Сообщить модератору
 Re: Таблицы с двойным ключом  [new]
Glory
Member

Откуда:
Сообщений: 104751
А что такое "двойной ключ" ?
14 июл 11, 13:53    [10973554]     Ответить | Цитировать Сообщить модератору
 Re: Таблицы с двойным ключом  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
nkad, анализируйте sys.index_columns и sys.indexes
14 июл 11, 13:54    [10973566]     Ответить | Цитировать Сообщить модератору
 Re: Таблицы с двойным ключом  [new]
nkad
Member

Откуда: Москва
Сообщений: 36
CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED
(
[a] ASC,
[b] ASC
) ON [PRIMARY]
14 июл 11, 13:54    [10973567]     Ответить | Цитировать Сообщить модератору
 Re: Таблицы с двойным ключом  [new]
nkad
Member

Откуда: Москва
Сообщений: 36
Shakill, а скриптик не напишите?
14 июл 11, 13:56    [10973574]     Ответить | Цитировать Сообщить модератору
 Re: Таблицы с двойным ключом  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
nkad, попробуйте сами сначала
14 июл 11, 13:57    [10973581]     Ответить | Цитировать Сообщить модератору
 Re: Таблицы с двойным ключом  [new]
Glory
Member

Откуда:
Сообщений: 104751
nkad
CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED
(
[a] ASC,
[b] ASC
) ON [PRIMARY]

А если ключ будет из 3х полей то это будет тройной ключ ?
14 июл 11, 13:57    [10973583]     Ответить | Цитировать Сообщить модератору
 Re: Таблицы с двойным ключом  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
+ offtop
Идет математик по улице, смотрит афиша: "Камерный оркестр". Заинтересовался, зашел. Выходит слегка разочарованный: "Тривиальный случай, К равно трём"
14 июл 11, 14:00    [10973604]     Ответить | Цитировать Сообщить модератору
 Re: Таблицы с двойным ключом  [new]
Fire83
Member

Откуда: Гомель-Минск
Сообщений: 474
nkad, Что-то типа такого:

SELECT c.TABLE_SCHEMA, c.TABLE_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS c
  INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE cc ON ( c.TABLE_SCHEMA = cc.TABLE_SCHEMA AND
                                                                c.TABLE_NAME  = cc.TABLE_NAME AND
                                                                c.CONSTRAINT_NAME = cc.CONSTRAINT_NAME 
                                                            )
WHERE c.CONSTRAINT_TYPE = 'PRIMARY KEY'
GROUP BY c.TABLE_SCHEMA, c.TABLE_NAME, c.CONSTRAINT_NAME 
HAVING count(*) = 2
14 июл 11, 14:10    [10973696]     Ответить | Цитировать Сообщить модератору
 Re: Таблицы с двойным ключом  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE cu ON tc.CONSTRAINT_NAME=cu.CONSTRAINT_NAME
WHERE tc.TABLE_NAME=N'ИмяТаблицы' AND tc.CONSTRAINT_TYPE=N'PRIMARY KEY'
ORDER BY tc.TABLE_NAME, cu.ORDINAL_POSITION;
14 июл 11, 14:10    [10973698]     Ответить | Цитировать Сообщить модератору
 Re: Таблицы с двойным ключом  [new]
_ч_
Member

Откуда:
Сообщений: 1446
nkad,

select sys.indexes.name, keycnt from sysindexes
inner join sys.indexes on sys.indexes.object_id = sysindexes.id
where keycnt = 2 and type_desc = 'CLUSTERED'
14 июл 11, 14:13    [10973728]     Ответить | Цитировать Сообщить модератору
 Re: Таблицы с двойным ключом  [new]
nkad
Member

Откуда: Москва
Сообщений: 36
Это то, что нужно. Всем огромное спасибо!
14 июл 11, 14:13    [10973735]     Ответить | Цитировать Сообщить модератору
 Re: Таблицы с двойным ключом  [new]
_ч_
Member

Откуда:
Сообщений: 1446
_ч_
nkad,

select sys.indexes.name, keycnt from sysindexes
inner join sys.indexes on sys.indexes.object_id = sysindexes.id
where keycnt = 2 and type_desc = 'CLUSTERED'


глупость написал кажется
14 июл 11, 14:17    [10973778]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить