powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Поменять DEFAULT из SP
11 сообщений из 11, страница 1 из 1
Поменять DEFAULT из SP
    #32068020
Alex Hazov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как правильно поменять DEFAULT из stored procedure ?
Пытаюсь делать так:
Код: plaintext
1.
2.
3.
4.
5.
@new_value varchar( 256 ) = ''
AS
     ALTER TABLE [db].[table_name] DROP CONSTRAINT [DF_table_name_field_name]
     ALTER TABLE [db].[table_name] WITH NOCHECK ADD CONSTRAINT [DF_table_name_field_name] DEFAULT (@new_value) FOR [field_name]
GO     

Получаю сообщение об ошибке Variables are not allowed in the ALTER TABLE statement.

А может есть более правильный путь ?
...
Рейтинг: 0 / 0
Поменять DEFAULT из SP
    #32068039
zorro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Процедура не может содержать команды ALTER TABLE
...
Рейтинг: 0 / 0
Поменять DEFAULT из SP
    #32068046
Alex Hazov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что тогда делать ?
Можно как нибудь напрямую syscomments подправить ?
Код: plaintext
1.
update syscomments set text='new value' where id=(select id from sysobjects where name = 'DF_constraint_name)
...
Рейтинг: 0 / 0
Поменять DEFAULT из SP
    #32068049
zorro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использовать просто скрипт
...
Рейтинг: 0 / 0
Поменять DEFAULT из SP
    #32068058
fima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2zorro не знаю как в 6,5 и 7, не на чем проверить, а в 2000 очень даже может. Это команда alter table не может содержать переменные, о чем в ошибке и написано. А выход я вижу через динамический запрос.
...
Рейтинг: 0 / 0
Поменять DEFAULT из SP
    #32068062
Alex Hazov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Без DROP/ADD CONSTRAINT никак не обойтись ?
А то получается возможна ситуация что что DROP пройдет, а ADD по какой то причине обламается ?
Это не есть хорошо ...
...
Рейтинг: 0 / 0
Поменять DEFAULT из SP
    #32068064
fima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ситуация когда пользователь удаляет добавляет ограничения сама по себе нехороша. Поэтому, по моему, достаточно просто сообщать о выполнении или невыполнении. Или что то в построении самой базы неправильно.
...
Рейтинг: 0 / 0
Поменять DEFAULT из SP
    #32068076
Фотография VVG_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно хранить дефолты в другой таблице, а выборку делать через view, где подставлять вместо NULL.
...
Рейтинг: 0 / 0
Поменять DEFAULT из SP
    #32068080
zorro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В книге Datebase Design on SQL Server 7
указано на ограничение на команду ALTER TABLE в
хранимой процедуре

exec('ALTER TABLE [db].[table_name] DROP CONSTRAINT [DF_table_name_field_name]')
exec('ALTER TABLE [db].[table_name] WITH NOCHECK ADD CONSTRAINT
[DF_table_name_field_name] DEFAULT ('+@new_value+') FOR [field_name]')
...
Рейтинг: 0 / 0
Поменять DEFAULT из SP
    #32068085
fima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я и говорил о 2000, а еще ошибка Variables are not allowed in the ALTER TABLE statement говорит о невозможности истользовать в ALTER TABLE переменной, так что у Alex Hazov наверно MSSQL 2000.
...
Рейтинг: 0 / 0
Поменять DEFAULT из SP
    #32068093
Alex Hazov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да у меня MS SQL 2000.
Сделал через динамический запрос.
Спасибо всем откликнувшимся.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Поменять DEFAULT из SP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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