Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как оределить: есть ли колонка с таким именем в таблице? / 4 сообщений из 4, страница 1 из 1
04.01.2019, 13:54
    #39755847
256k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как оределить: есть ли колонка с таким именем в таблице?
Есть таблица:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
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.
Так дает в любом случае, что существует:

Код: sql
1.
2.
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'
...
Рейтинг: 0 / 0
04.01.2019, 13:57
    #39755849
256k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как оределить: есть ли колонка с таким именем в таблице?
Так получается:
Код: sql
1.
2.
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 ?
...
Рейтинг: 0 / 0
04.01.2019, 14:54
    #39755864
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как оределить: есть ли колонка с таким именем в таблице?
Код: sql
1.
2.
IF COL_LENGTH(N'test',N'History') IS NULL
PRINT 'Поля test.History нет';
...
Рейтинг: 0 / 0
04.01.2019, 14:58
    #39755866
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как оределить: есть ли колонка с таким именем в таблице?
256kесли база имеет какой-нибудь дикий коллейт, не Latin1_General_CS_AI ?Действительно, единственный одомашненный collate - это Latin1_General_CS_AI !
Остальные дикие...
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как оределить: есть ли колонка с таким именем в таблице? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]