Microsoft SQL Compact Edition переименовать столбец - PullRequest
15 голосов
/ 19 октября 2010

У меня проблемы с переименованием столбца в SQL Server Compact Edition. Я знаю, что вы можете переименовать таблицу, используя sp_rename, но это не работает со столбцами.

Я искал альтернативу, но не нашел ее.

Можно ли удалить столбец, а затем добавить новый после определенного столбца? Если я удалю столбец и добавлю его после указанного, данные будут потеряны, верно?

Кажется, что после того, как вы создали таблицу, она не может быть должным образом изменена - это еще одно из ограничений SQLCE?

Ответы [ 3 ]

14 голосов
/ 19 октября 2010

Действительно, кажется, что SQL CE не позволяет изменять имена столбцов.

Вы находитесь на правильном пути создания нового столбца и удаления старого.

Если вы просто добавляетеВ столбце и при удалении старого вы потеряете данные, поэтому вам нужно будет выполнить оператор обновления, чтобы переместить данные из старого в новый.

Что-то вроде

alter Table [dbo].[yourTable] add [newColumn]

update yourTable set newColumn = oldColumn

alter Table [dbo].[yourTable] drop column [oldColumn]

Еслисоздайте новый столбец, продублируйте данные со старого на новый, а затем удалите старый столбец.

Надеюсь, это поможет!

2 голосов
/ 19 октября 2010

sp_rename работает и со столбцами:

EXEC sp_rename
objname = '< Table Name.Old Column Name >',
@newname = '<New Column Name>',
@objtype = 'COLUMN'  

Пример:

SP_RENAME 'MyTable.[MyOldColumnName]' , '[MyNewColumnName]', 'COLUMN'  


ОБНОВЛЕНИЕ: На самом деле, процедура sp_rename недоступна в SQL CE!Вы можете найти решение в http://www.bigresource.com/Tracker/Track-ms_sql-4Tvoiom3/

0 голосов
/ 22 марта 2012

SDF Viewer имеет встроенную функцию, вы также можете переименовывать индексы, ключи и отношения. Просто щелкните правой кнопкой мыши на имени, которое вы хотите изменить в древовидной структуре базы данных.

...