Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Visual studio:向localdb添加列重置所有数据_C#_Sql_Visual Studio 2017_Localdb - Fatal编程技术网

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做一些试运行来发现。如果它不起作用,就告诉我它实际上没有移动我的桌子!但每次应用程序启动时运行它是一个好主意吗??(出于升级目的)为什么每次应用程序启动时都要添加现有列?