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

Откуда:
Сообщений: 11
Здравствуйте!Помогите пожалуйста.
Пытаюсь переименовать столбец:
sp_RENAME 'Моя_таблица.[старая_колонка]' , '[новая_колонка]', 'COLUMN';
Но данный запрос не выполняется.(
А как тип данных именить, даже понятия не имею.
21 сен 11, 12:30    [11310891]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Lucifer777
Пытаюсь переименовать столбец:
sp_RENAME 'Моя_таблица.[старая_колонка]' , '[новая_колонка]', 'COLUMN';
Но данный запрос не выполняется.(

А что там за квадратные скобки вы понаставили ? Для красоты ?
21 сен 11, 12:33    [11310924]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Lucifer777
А как тип данных именить, даже понятия не имею.

Изучить команду ALTER TABLE
21 сен 11, 12:33    [11310927]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
Lucifer777
Member

Откуда:
Сообщений: 11
Glory,Именно;)
Вот такую выдаёт ошибку:
Для процедуры указано недопустимое значение аргумента. [ Argument # = 3,Name of procedure(if known) = sp_rename ]
21 сен 11, 12:44    [11311039]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Lucifer777
Для процедуры указано недопустимое значение аргумента. [ Argument # = 3,Name of procedure(if known) = sp_rename ]
Это не серверная ошибка.
21 сен 11, 12:45    [11311051]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Lucifer777
Glory,Именно;)

Т.е. вы сознательно пишите в параметры неправильные значения и удивляетесь результату ?
21 сен 11, 12:50    [11311101]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
Lucifer777
Member

Откуда:
Сообщений: 11
Glory
Lucifer777
А как тип данных именить, даже понятия не имею.

Изучить команду ALTER TABLE



Пытался командой ALTER, но как-то не хрена не получилось.
Структуру запроса использовал такую:
ALTER TABLE Имя_таблицы
ALTER COLUMN Имя_колонки тип_данных(длина);
21 сен 11, 12:50    [11311102]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Lucifer777
Структуру запроса использовал такую:
ALTER TABLE Имя_таблицы
ALTER COLUMN Имя_колонки тип_данных(длина);

О сообщение сервера на этот раз соответственно "как-то не хрена не получилось" ?
21 сен 11, 12:51    [11311116]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Огласите полную версию вашего сервера, для начала.
21 сен 11, 12:52    [11311125]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
Lucifer777
Member

Откуда:
Сообщений: 11
Glory,Просто в нескольких окнах сижу и на скорую руку так как срочно надо и когда копировал-вставлял из шаблона не заметил ошибки.Запрос делаю без скобок естественно.
Прошу прощения за некорректность.
21 сен 11, 12:54    [11311151]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
Lucifer777
Member

Откуда:
Сообщений: 11
Гавриленко Сергей Алексеевич,

MSSQL_50.SQLEXPRESS
Версия:10.50.1600.1
Версия файла:2009.100.1600.1
Версия пакета обновления:2009.100.1600.1

То написал?
21 сен 11, 13:07    [11311285]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
Lucifer777
Member

Откуда:
Сообщений: 11
Glory
Lucifer777
Структуру запроса использовал такую:
ALTER TABLE Имя_таблицы
ALTER COLUMN Имя_колонки тип_данных(длина);

О сообщение сервера на этот раз соответственно "как-то не хрена не получилось" ?


если бы результат был бы положительным то не спрашивал бы как изменить тип данных.
Надеюсь на вашу помощь в обоих случаях.
21 сен 11, 13:10    [11311320]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Lucifer777
если бы результат был бы положительным то не спрашивал бы как изменить тип данных.

Если бы вы публиковали и читали оригинальные сообщения сервера, то наверное все бы понимали, в чем проблема
21 сен 11, 13:13    [11311348]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
Lucifer777
Member

Откуда:
Сообщений: 11
Glory
Lucifer777
если бы результат был бы положительным то не спрашивал бы как изменить тип данных.

Если бы вы публиковали и читали оригинальные сообщения сервера, то наверное все бы понимали, в чем проблема


Вот собственно вся ошибка:
---------------------------
Диспетчер баз данных
---------------------------
Для процедуры указано недопустимое значение аргумента. [ Argument # = 3,Name of procedure(if known) = sp_rename ]
---------------------------
ОК
---------------------------
System.Data.SqlServerCe.SqlCeException (0x80004005): Для процедуры указано недопустимое значение аргумента. [ Argument # = 3,Name of procedure(if known) = sp_rename ]
в System.Data.SqlServerCe.SqlCeCommand.ProcessResults(Int32 hr)
в System.Data.SqlServerCe.SqlCeCommand.ExecuteCommandText(IntPtr& pCursor, Boolean& isBaseTableCursor)
в System.Data.SqlServerCe.SqlCeCommand.ExecuteCommand(CommandBehavior behavior, String method, ResultSetOptions options)
в System.Data.SqlServerCe.SqlCeCommand.ExecuteDbDataReader(CommandBehavior behavior)
в System.Data.Common.DbCommand.ExecuteReader()
в Microsoft.WebMatrix.DatabaseManager.SqlCeDatabase.SqlCeDatabaseProvider.ExecuteQuery(String connectionString, Query query)
в Microsoft.WebMatrix.DatabaseManager.IisDbManagerModuleService.ExecuteQuery(Object databaseConnectionObject, Object query, String configPathState)
---------------------------
21 сен 11, 13:25    [11311516]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Так у вас CE, а не экспресс.
21 сен 11, 13:26    [11311527]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Lucifer777
SqlCeException

А что вы нам тут впариваете про SQLEXPRESS, если у вас Compact Edition
А версию опубликовали студии, а не сервера
21 сен 11, 13:28    [11311541]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
Lucifer777
Member

Откуда:
Сообщений: 11
Гавриленко Сергей Алексеевич
Так у вас CE, а не экспресс.


можно ближе к теме?)
21 сен 11, 13:31    [11311582]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Lucifer777
можно ближе к теме?)

К какой ?
Почему в для разных редакций есть ограничения по синтаксису ?
Так это вам в хелпе надо читать
21 сен 11, 13:33    [11311608]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
shut-up-and-skate
Member

Откуда: ВАО
Сообщений: 4259
Lucifer777, go?
21 сен 11, 13:35    [11311629]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
Lucifer777
Member

Откуда:
Сообщений: 11
Glory
Lucifer777
SqlCeException

А что вы нам тут впариваете про SQLEXPRESS, если у вас Compact Edition
А версию опубликовали студии, а не сервера


Ну думаю не стоит так агрессивно реагировать, я не специально.
Данной командой "Select @@version" нечего не получилось, по этому полез в свойства.
21 сен 11, 13:39    [11311666]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
vov@
Member

Откуда: Днепропетровск
Сообщений: 110
на таблице много завязок?
триггера, индексы и т.п.

и какое кол-во строк?
21 сен 11, 14:12    [11312044]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
Lucifer777
Member

Откуда:
Сообщений: 11
shut-up-and-skate
Lucifer777, go?

всё ранво не работает, сделал всё как там написано, такая же ошибка.
21 сен 11, 14:17    [11312107]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
iljy
Member

Откуда:
Сообщений: 8711
Lucifer777,

потому что надо читать доки по вашей версии сервера.
21 сен 11, 14:21    [11312141]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Lucifer777
всё ранво не работает, сделал всё как там написано, такая же ошибка.

Вы хотите сказать, что при ALTER TABLE Имя_таблицы ALTER COLUMN Имя_колонки тип_данных(длина); выдается
---------------------------
Диспетчер баз данных
---------------------------
Для процедуры указано недопустимое значение аргумента. [ Argument # = 3,Name of procedure(if known) = sp_rename ]
---------------------------
ОК
---------------------------
System.Data.SqlServerCe.SqlCeException (0x80004005): Для процедуры указано недопустимое значение аргумента. [ Argument # = 3,Name of procedure(if known) = sp_rename ]
в System.Data.SqlServerCe.SqlCeCommand.ProcessResults(Int32 hr)
в System.Data.SqlServerCe.SqlCeCommand.ExecuteCommandText(IntPtr& pCursor, Boolean& isBaseTableCursor)
в System.Data.SqlServerCe.SqlCeCommand.ExecuteCommand(CommandBehavior behavior, String method, ResultSetOptions options)
в System.Data.SqlServerCe.SqlCeCommand.ExecuteDbDataReader(CommandBehavior behavior)
в System.Data.Common.DbCommand.ExecuteReader()
в Microsoft.WebMatrix.DatabaseManager.SqlCeDatabase.SqlCeDatabaseProvider.ExecuteQuery(String connectionString, Query query)
в Microsoft.WebMatrix.DatabaseManager.IisDbManagerModuleService.ExecuteQuery(Object databaseConnectionObject, Object query, String configPathState)
21 сен 11, 14:25    [11312197]     Ответить | Цитировать Сообщить модератору
 Re: Нужно переименовать столбец и изменить тип данных.  [new]
Русский программист
Member

Откуда: Москва
Сообщений: 5
Иногда возможно пойти по такому пути (автору - если уже сам обдумывал, то сорри, но по "запарке" иногда не приходят в голову очевидные вещи) Создать новый столбец с нужным типом данных и нужным именем и перенести туда данные запросом или процедурой, с одновременным приведением к нужному типу, а затем удалить старый, исходный столбец.

Или произвести отчуждение базы, воткнуть ее в другую версию SQL, которая поддерживает нужный синтаксис, там все изменить, а далее импортировать или экспортировать (смотря с какой стороны) измененную БД обратно.

Так же рассмотрите другие варианты с переименованиями: напр. создать клон таблицы с другим именем, произвести действия над ним, потом старую таблицу заменить клоном. Все зависит от конкретной ситуации, внешних ключей и пр..
21 сен 11, 15:50    [11313063]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить