Microsoft SQL Compact Edition重命名列

luc*_*ian 15 sql database-design ssms rename sql-server-ce

我在重命名SQL Server Compact Edition中的列时遇到问题.我知道您可以使用重命名表sp_rename,但这不适用于列.

我已经寻找替代方案,但还没找到.

我可以删除列,然后在特定列之后添加新列吗?如果我删除列并在指定的列之后添加它,数据会丢失吗?

看来,一旦你创建了表,它就无法正确修改 - 这是SQLCE的另一个限制吗?

Rob*_*obb 14

确实,SQL CE似乎不允许更改列名.

您正在创建一个新列并删除旧列.

如果只添加一列并删除旧列,则会丢失数据,因此您需要发出更新语句以将数据从旧数据移至新数据.

有点像

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

update yourTable set newColumn = oldColumn

alter Table [dbo].[yourTable] drop column [oldColumn]
Run Code Online (Sandbox Code Playgroud)

应创建新列,将数据从旧复制到新,然后删除旧列.

希望能帮助到你!

  • 完美的解决方案(除非列是索引的一部分).记住第一个命令的数据类型,否则脚本将失败/失败/成功... (2认同)

Kam*_*yar 2

sp_rename 也适用于列:

EXEC sp_rename
objname = '< Table Name.Old Column Name >',
@newname = '<New Column Name>',
@objtype = 'COLUMN'  
Run Code Online (Sandbox Code Playgroud)

例子:

SP_RENAME 'MyTable.[MyOldColumnName]' , '[MyNewColumnName]', 'COLUMN'  
Run Code Online (Sandbox Code Playgroud)



更新:实际上,sp_rename 过程在 SQL CE 中不可用!您可以在http://www.bigresource.com/Tracker/Track-ms_sql-4Tvoiom3/找到解决方案