C#Visual studio:向localdb添加列重置所有数据
我使用的是C#Visual studio:向localdb添加列重置所有数据,c#,sql,visual-studio-2017,localdb,C#,Sql,Visual Studio 2017,Localdb,我使用的是VisualStudio 2017 C和localdb2016我在server explorer的数据库设计窗口中创建了一个表,添加了10列X行 我已经设置了copy if newer,所以不会每次都删除行 但是当我尝试添加一个新的列(第11列)时,我的所有行(甚至在其他表中!)都会被删除 为什么? 这是我从DeEnginer生成的表代码…: CREATE TABLE [dbo].[CustomerTable] ( [Id] INT IDE
VisualStudio 2017 C
和localdb2016
我在server explorer的数据库设计窗口中创建了一个表,添加了10
列X
行
我已经设置了copy if newer
,所以不会每次都删除行
但是当我尝试添加一个新的列(第11列)
时,我的所有行(甚至在其他表中!)都会被删除
为什么?
这是我从DeEnginer生成的表代码…:
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 ;
此查询将在表中添加两列->第一列,b(VARCHAR[20]),第二列,c(INT)。
要阅读更多,
该查询不会删除任何现有列,因为它是一个alter查询,这意味着它会更改您提到的表。添加现有列不会改变表。因此,没有任何更改。我必须将其放入T-SQL窗口还是作为查询在我的C#应用程序中执行?如果存在列b,它会删除数据还是什么都不做?@Disco4uf您可以使用sqlclient@Disco4uf做一些试运行来发现。如果它不起作用,就告诉我它实际上没有移动我的桌子!但每次应用程序启动时运行它是一个好主意吗??(出于升级目的)为什么每次应用程序启动时都要添加现有列?