2014-09-26 6 views
0

У меня есть домен DateDom36:char(18), но мне нужно изменить подтип на date. Я изменил его в Erwin, но каким-то образом я не сохранил изменения до того, как создал их в базе данных. Как я могу заставить SQL принять меня, меняя тип на сегодняшний день?Изменить подтип домена на SQL-сервере

Примечание: это не для класса кредита.

+0

Я думаю, что это домен. Нам нужно было создать домен с таким именем, подтип которого был 'date', но я сделал его' char (18) '. – JFA

+0

Хм. Я использую MSSMS. Таким образом, тип данных для имени - char (30), тип данных для типа работы - char (1), но я пытаюсь сделать тип данных для даты найма DateDom36 ​​с базовым типом даты вместо char (18). Это что-то объясняет? – JFA

+0

Вы создали пользовательский тип, называемый 'DateDom (36)', который действительно является системным типом 'char (18)'? Опять же, условия меня убивают. Что вы видите в SSMS, если в своей базе данных вы раскрываете «Программируемость> Типы> Пользовательские типы данных»? – Yuck

ответ

2

Попробуйте запустить в окне запроса при подключении к базе данных:

DROP TYPE DateDom36; 
GO 
CREATE TYPE DateDom36 FROM date; 

Это WAG основано на том, что вы написали выше. Имя типа очень любопытно, потому что вы обычно не хотите использовать скобки.

+0

Извините, что parens вокруг 36 были опечатками, которых не существует нигде. я бы просто сделал DateDob36 из даты; тогда? – JFA

+0

Да; см. мое редактирование. – Yuck

+0

Мне нужно 36, хотя это мой идентификатор в этом проекте. Итак, я бы сделал DateDom36? – JFA

0

Сначала убедитесь, что все ваши значения char (18) могут быть преобразованы в дату.

Во-вторых, помните, что грубая сила всегда работает.

Дамп базы данных в текстовый файл, отредактируйте оператор CREATE DOMAIN и загрузите базу данных.

Когда вы редактируете инструкцию CREATE DOMAIN, отредактируйте тип, а не имя.

+0

MS SQL не имеет оператора 'CREATE DOMAIN'. Это 'CREATE TYPE', который имеет несколько иной синтаксис и правила, касающиеся того, как типы (домены) создаются и изменяются (т. Е. Они не могут быть изменены). – Yuck

+0

* «они не могут быть изменены» * Ну, это больно. И CREATE DOMAIN находится в стандартном SQL с по крайней мере 1992 года. (И эта проблема в точности * почему * она была там с по крайней мере с 1992 года.) –

+0

@Yuck: Вы уверены, что вы не можете редактировать инструкцию CREATE TYPE в * text * file, затем загрузить текст? Мне это кажется странным. –

Смежные вопросы