C# Visual studio : 将列添加到 localdb 重置所有数据
C# Visual studio : adding columns to localdb reset all data
我正在使用 VisualStudio 2017 C#
和 localdb2016
我在服务器资源管理器的数据库设计器 window 中创建了一个 table 添加了 10
列 X
行。
我已经设置了 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。所以,没有变化。
我正在使用 VisualStudio 2017 C#
和 localdb2016
我在服务器资源管理器的数据库设计器 window 中创建了一个 table 添加了 10
列 X
行。
我已经设置了 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。所以,没有变化。