我在SQL Server Compact Edition中重命名列时遇到了问题。我知道可以使用 sp_rename
重命名表,但这对于列不起作用。
我已经搜索了替代方法,但没有找到。
我能够删除一列并在特定列之后添加一个新列吗?如果我删除该列并在指定的列之后添加它,则数据将丢失,对吗?
似乎一旦创建了表格,它就无法正确修改 - 这是 SQLCE 的另一个限制吗?
我在SQL Server Compact Edition中重命名列时遇到了问题。我知道可以使用 sp_rename
重命名表,但这对于列不起作用。
我已经搜索了替代方法,但没有找到。
我能够删除一列并在特定列之后添加一个新列吗?如果我删除该列并在指定的列之后添加它,则数据将丢失,对吗?
似乎一旦创建了表格,它就无法正确修改 - 这是 SQLCE 的另一个限制吗?
看起来 SQL CE 确实不允许更改列名。
你的想法是对的,先创建一个新的列,然后再删除旧的列。
如果只是添加一个新列并删除旧列,那么数据会丢失,所以你需要发出更新语句将数据从旧列移动到新列。
类似于以下内容:
alter Table [dbo].[yourTable] add [newColumn] [DataType]
update yourTable set newColumn = oldColumn
alter Table [dbo].[yourTable] drop column [oldColumn]
应该创建您的新列,将数据从旧列复制到新列,然后删除旧列。
希望对您有所帮助!
sp_rename works with columns too:
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/找到解决方案。
SDF Viewer内置了此功能,您还可以重命名索引、键和关系。只需在数据库树视图中右键单击要更改的名称即可。