![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Изменение типа поля [D7, MSSQL]
VadimSpb © (2006-05-04 11:01:00)Изменяю типы некоторых полей запросом при открытии программы. Собственно, этого действия достаточно один раз. Как проверить тип поля и если надо изменить?
VadimSpb (2006-05-05 00:20:00) [1]Поймал гада.
Работает так:
SELECT name FROM sysobjects WHERE id =(SELECT cdefault FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = 'Payments') AND name = 'TYPE')
В результате имеем имя ограничения для данного поля (Type) для данной таблицы (Payments).
Предполагаю, что запрос д.б. проще через INFORMATION_SCHEMA ...
VadimSpb (2006-05-04 23:57:00) [2]
> INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
Не катит. возвращает со всей таблицы только один первичный ключ. Он хороший и трогать его не надо. Мусор в виде других ограничений (папка CONSTRAINTS) не виден. :-((((
> но все-таки отдельным патч-модулем, который может запускаться
> программой при старте для проверки-корректировки БД
Разумно. Теперь уже придется так и делать - изменей со временем все больше.
Nikolay M. (2006-05-04 18:24:00) [3]
> Я имею ввиду компактный материал.
Лучше БОЛ материала нет. Ничего лишнего в нем тоже нет.
VadimSpb (2006-05-04 16:37:00) [4]
> INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
Спасибо, посмотрю.
Есть ли ссылка или эл. док., где сжато все это собрано?
БОЛ мне известен. Я имею ввиду компактный материал.
Nikolay M. (2006-05-04 15:04:00) [5]
> можно ли получить список имен ограничений для данного поля?
INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
?
:)))
Desdechado (2006-05-04 13:42:00) [6]еще раз - по системным таблицам
имена и типы ограничений, а также на что именно
VadimSpb (2006-05-04 13:40:00) [7]Я подозреваю, что имена ограничений для данного поля в разных БД м.б. различны. Отсюда вопрос: можно ли получить список имен ограничений для данного поля?
Sergey13 (2006-05-04 13:33:00) [8]2[17] VadimSpb (04.05.06 13:29)
Кошмар!
VadimSpb (2006-05-04 13:29:00) [9]В том то и дело. Часть юзеров сами наэкспортировали втупую. А БД показывать не хотят.
Desdechado (2006-05-04 13:19:00) [10]узнать по системным таблицам
а вообще, с таким подходом - я тебе не завидую
наэкспортировал хрен знает чего, теперь автопилотом из юзерской (а не служебной) программы типы меняешь, ограничения кусаешь, и все вслепую
бр...
Sergey13 (2006-05-04 13:18:00) [11]2[14] VadimSpb (04.05.06 13:14)
> А если надо снять ограничения только на конкретное поле и имени этого ограничения мы не знаем?
Если имени его не знаете, то может и назначения тоже не знаете? Может и не делать этого совсем?
VadimSpb (2006-05-04 13:14:00) [12]
> ALTER TABLE ... DROP CONSTRAINT
А если надо снять ограничения только на конкретное поле и имени этого ограничения мы не знаем?
Sergey13 (2006-05-04 13:07:00) [13]2[5] VadimSpb (04.05.06 11:28)
> По ряду причин это неудобно.
Понимаю. Гораздо проще при каждом запускелопатить системные таблицы и/или блокировать пользовательские. То-же метод.
Desdechado (2006-05-04 13:01:00) [14]ALTER TABLE ... DROP CONSTRAINT
VadimSpb (2006-05-04 12:55:00) [15]
> наверно
> PRIMARY KEY, UNIQUE, FOREIGN KEY, CHECK
Нет, поля не имеют ограничений :-(((
Наверное что-то с Ацесса тянется - оттуда экспортировалось.
Как в поле очистить все ограничения запросом?
Desdechado (2006-05-04 12:41:00) [16]наверно
PRIMARY KEY, UNIQUE, FOREIGN KEY, CHECK
а изменения делаются через ALTER TABLE
но все-таки отдельным патч-модулем, который может запускаться программой при старте для проверки-корректировки БД
VadimSpb (2006-05-04 12:22:00) [17]
> Побывав бы !
Не понял.
Что эа ограничения в таблицах(в папке Constraints) появились и откуда?
MsGuns (2006-05-04 12:18:00) [18]>'DF_Table_Pole_36B12243'
Побывав бы !
VadimSpb (2006-05-04 12:06:00) [19]Nikolay M. © (04.05.06 11:34) [6]
Спасибо, попробую.
Подскажите, что за ошибка вылезает при изменении некоторых полей:
'DF_Table_Pole_36B12243' is dependent on column 'Pole'?
Поле ни с каким не связано.
Nikolay M. (2006-05-04 11:34:00) [20]
> > INFORMATION_SCHEMA.COLUMNS
>
> Как этим пользоваться?
SELECT * FROM master.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'syslogins'