VS 2010数据库项目删除列名称更改的数据

Kei*_*ons 4 data-integrity visual-studio-2010 datadude

我正在测试Visual Studio 2010的新数据库项目功能,并希望更改表中列的名称.我在创建脚本中更改了名称并将其部署在数据库中.生成的脚本刚刚删除了列并添加了一个具有正确名称的新列,但所有数据都已丢失.

是否有不会丢弃列数据的设置?

我正在寻找这个问题的"DataDude"解决方案.(如果有的话)

PRINT N'Altering [dbo].[Users]...';

GO
ALTER TABLE [dbo].[Users] DROP COLUMN [TestX];

GO
ALTER TABLE [dbo].[Users]
    ADD [Testn] NVARCHAR (50) NULL;

GO
Run Code Online (Sandbox Code Playgroud)

谢谢,基思

Kei*_*ons 7

单击"查看" - >"数据库架构视图",使用"架构视图"

展开表及其列.

右键单击该列,然后单击"重构" - >"重命名..."

使用"预览更改"框更改"新名称"字段中的名称.

请注意,它不仅更改列名称,还更改可能引用该列的存储过程.

在Database项目中,创建了一个显示名称更改的refactorlog文件.

当针对现有数据库部署新模式时,DataDude会查看refactorlog文件和dbo._Refactorlog表,以确定需要针对数据库处理哪些重构.

以下是使用此过程生成的代码,更改了在存储过程中也引用的列名:

EXECUTE sp_rename @objname = N'[dbo].[Users].[TestF]', @newname = N'TestG', @objtype = N'COLUMN';

GO
PRINT N'Altering [dbo].[ListUsers]...';

GO
ALTER PROCEDURE [dbo].[ListUsers]

AS
    SELECT [ID], [FirstName], [LastName], [TestG]
    FROM Users
RETURN 0
GO
Run Code Online (Sandbox Code Playgroud)

基思