我在重命名SQL Server Compact Edition中的列时遇到问题。我知道您可以使用sp_rename
重命名表,但这不适用于列。
我已经寻找替代方案,但还没找到。
我可以删除列,然后在特定列之后添加新列吗?如果我删除了列并在指定的列之后添加它,那么数据会丢失吗?
似乎一旦你创建了表,它就无法正确修改 - 这是SQLCE的另一个限制吗?
答案 0 :(得分:14)
看起来SQL CE似乎不允许更改列名。
您正在创建一个新列并删除旧列。
如果您只是添加一个列并删除旧列,则会丢失数据,因此您需要发出更新语句以将数据从旧数据转移到新数据。
的内容
alter Table [dbo].[yourTable] add [newColumn]
update yourTable set newColumn = oldColumn
alter Table [dbo].[yourTable] drop column [oldColumn]
应创建新列,将数据从旧复制到新,然后删除旧列。
希望它有所帮助!
答案 1 :(得分:2)
sp_rename也适用于列:
EXEC sp_rename
objname = '< Table Name.Old Column Name >',
@newname = '<New Column Name>',
@objtype = 'COLUMN'
示例:
SP_RENAME 'MyTable.[MyOldColumnName]' , '[MyNewColumnName]', 'COLUMN'
更新:实际上,SQL CE中的sp_rename过程是不可用的!您可以在http://www.bigresource.com/Tracker/Track-ms_sql-4Tvoiom3/
答案 2 :(得分:0)
SDF Viewer内置了此功能,您还可以重命名索引,键和关系。只需右键单击要在数据库树视图中更改的名称。