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

Откуда: с.Торчилово, Псковская обл.
Сообщений: 393
Есть таблица:
drop table test;GO
create table test
(
id int not null identity(0,1),
name nvarchar(128),
History int not null default(0)
);
GO


Хочу переименовать колонку History в history, вопрос: как определить, есть ли в таблице колонка с именем 'History', чтобы переименовывать только когда еще старое имя?
База - AI.
Так дает в любом случае, что существует:

select * from INFORMATION_SCHEMA.COLUMNS where TABLE_SCHEMA='dbo' and TABLE_NAME=N'test' and COLUMN_NAME='History'
select * from INFORMATION_SCHEMA.COLUMNS where TABLE_SCHEMA='dbo' and TABLE_NAME=N'test' and COLUMN_NAME='history'
4 янв 19, 13:54    [21778351]     Ответить | Цитировать Сообщить модератору
 Re: Как оределить: есть ли колонка с таким именем в таблице?  [new]
256k
Member

Откуда: с.Торчилово, Псковская обл.
Сообщений: 393
Так получается:
select * from INFORMATION_SCHEMA.COLUMNS where TABLE_SCHEMA='dbo' and TABLE_NAME=N'test' 
and COLUMN_NAME='history' COLLATE Latin1_General_CS_AI



но не будет ли проблем, если база имеет какой-нибудь дикий коллейт, не Latin1_General_CS_AI ?
4 янв 19, 13:57    [21778353]     Ответить | Цитировать Сообщить модератору
 Re: Как оределить: есть ли колонка с таким именем в таблице?  [new]
iap
Member

Откуда: Москва
Сообщений: 46536
IF COL_LENGTH(N'test',N'History') IS NULL
PRINT 'Поля test.History нет';
4 янв 19, 14:54    [21778395]     Ответить | Цитировать Сообщить модератору
 Re: Как оределить: есть ли колонка с таким именем в таблице?  [new]
iap
Member

Откуда: Москва
Сообщений: 46536
256k
если база имеет какой-нибудь дикий коллейт, не Latin1_General_CS_AI ?
Действительно, единственный одомашненный collate - это Latin1_General_CS_AI !
Остальные дикие...
4 янв 19, 14:58    [21778397]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить