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

Откуда:
Сообщений: 22
Добрый день, хочу объединить следующие 2 запроса:
select col.COLUMN_NAME, col.DATA_TYPE
From INFORMATION_SCHEMA.COLUMNS as col
Where col.TABLE_NAME = 'table' 
order by col.COLLATION_NAME

и
select COLUMN_NAME 
from INFORMATION_SCHEMA.KEY_COLUMN_USAGE
where TABLE_NAME ='table'  
AND OBJECT_ID(CONSTRAINT_NAME,'PK') IS NOT NULL
ORDER BY COLUMN_NAME

вот в такой:
select col.COLUMN_NAME, col.DATA_TYPE, 
OBJECT_ID(CONSTRAINT_NAME,'PK')
From INFORMATION_SCHEMA.COLUMNS as col left outer join 
INFORMATION_SCHEMA.KEY_COLUMN_USAGE as kcu
on col.COLUMN_NAME = kcu.COLUMN_NAME 
and col.TABLE_NAME = kcu.TABLE_NAME
Where col.TABLE_NAME = 'table' 
order by col.COLLATION_NAME, kcu.CONSTRAINT_NAME


получается
col1intnull
col2intnull
col2int1253579504
col3textnull
..........

т.е. строки, содержащие названия PK, дублируются. как избавиться от копии? получить примерно такое:
col1intnull
col2int1253579504
col3textnull
..........

спасибо.
1 апр 13, 14:34    [14121646]     Ответить | Цитировать Сообщить модератору
 Re: структура таблицы  [new]
AnyKey45
Guest
kabee,

сделать выборку 1 запроса во временную таблицу, переменную, потом провести апдейт данными из 2 запроса, правильно расставив условия с NULL
1 апр 13, 14:40    [14121679]     Ответить | Цитировать Сообщить модератору
 Re: структура таблицы  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
case вам в руки
1 апр 13, 14:43    [14121694]     Ответить | Цитировать Сообщить модератору
 Re: структура таблицы  [new]
Гость333
Member

Откуда:
Сообщений: 3683
select col.COLUMN_NAME, col.DATA_TYPE, 
MAX(OBJECT_ID(CONSTRAINT_NAME,'PK'))
From INFORMATION_SCHEMA.COLUMNS as col left outer join 
INFORMATION_SCHEMA.KEY_COLUMN_USAGE as kcu
on col.COLUMN_NAME = kcu.COLUMN_NAME 
and col.TABLE_NAME = kcu.TABLE_NAME
Where col.TABLE_NAME = 'table' 
group by col.COLUMN_NAME, col.DATA_TYPE
order by MAX(col.COLLATION_NAME), MAX(kcu.CONSTRAINT_NAME)


Но что-то вы про схему совсем забыли. Джойнить нужно и по схеме тоже; при вызове OBJECT_ID схему тоже нужно учитывать.
1 апр 13, 14:47    [14121726]     Ответить | Цитировать Сообщить модератору
 Re: структура таблицы  [new]
kabee
Member

Откуда:
Сообщений: 22
большое спасибо! то, что надо
1 апр 13, 14:53    [14121771]     Ответить | Цитировать Сообщить модератору
 Re: структура таблицы  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
kabee
большое спасибо! то, что надо
А у некоторых типов ещё и длина есть.
А у некоторых - ещё и точность...

Так что кривая у Вас структура получается
1 апр 13, 15:05    [14121863]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить