C# Visual studio : 将列添加到 localdb 重置所有数据

C# Visual studio : adding columns to localdb reset all data

我正在使用 VisualStudio 2017 C#localdb2016 我在服务器资源管理器的数据库设计器 window 中创建了一个 table 添加了 10X行。

我已经设置了 copy if newer 所以行不会每次都被删除

但是当我尝试添加 new column (11th column) 我所有的行(甚至在其他 tables!) 被删除 !

为什么?

这是我从 desginer 生成的 Table 代码.... :

    CREATE TABLE [dbo].[CustomerTable] (
    [Id]      INT           IDENTITY (1, 1) NOT NULL,
    [name]    NVARCHAR (50) NULL,
    [company] NVARCHAR (50) NULL,
    [email]   NVARCHAR (50) NULL,
    [phone1]  NVARCHAR (50) NULL,
    [phone2]  NVARCHAR (50) NULL,
    [address] NVARCHAR (50) NULL,
    [fax]     NVARCHAR (50) NULL,
    [phone3]  NVARCHAR (50) NULL,
    [date]    DATETIME      DEFAULT (getdate()) NULL,
    PRIMARY KEY CLUSTERED ([Id] ASC)
);

更新 1:

ALTER TABLE dbo.CustomerTable ADD column_b VARCHAR(20) NULL, column_c INT NULL ;

如果旧列(b 和 c)存在,该代码是否会删除它们? 每次应用程序启动时都这样做是个好主意吗? (用于升级目的)

试试这个 Transact-SQL 查询

ALTER TABLE dbo.CustomerTable ADD column_b VARCHAR(20) NULL, column_c INT NULL ;

此查询将在您的 table 中添加 2 列 -> 首先是 b (VARCHAR[20]),其次是 c (INT)。 要阅读更多, ALTER TABLE (Transact-SQL)

该查询不会删除任何现有列,因为它是一个更改查询,这意味着它会像您提到的那样更改 table。添加现有列不会改变 table。所以,没有变化。