如何在 SQL Server 2008 r2 中添加列值?

3
我创建了一个名为Dummy的表,其中有4列:Date,Year,Student_Names,Subject。 几天后,我需要添加一个名为Marks的新列。
我知道如何通过使用SQL查询来添加列Marks,我正在使用以下查询:
Alter Table Dummy 
add Mark varchar(30)

在我添加列之后,所有的值都是NULL,我需要在NULL的位置填入一些值。

我该如何添加这些值?这些值在Excel文件中提到。


2
您可以更新具有NULL值的先前行。 - TechDo
听起来你打算将多个值存储到像Student_NamesMarks这样的列中 - 这是一个非常糟糕的想法 - 你永远不应该这样做。它甚至违反了数据库设计的第一范式 - 一个单元格(行/列)只包含一个值(或空值) - 而不是多个值 - 这是基本数据库设计的核心原则之一。 - marc_s
我同意Techdo的观点:添加一个允许为空的列,根据需要更新值,然后移除空置选项,除非必需...您将不得不找出如何从Excel加载数据,这是一个不同的问题。 - user166390
4个回答

3
尝试一下,
Alter Table Dummy ADD Mark varchar(30) DEFAULT ''

或者

UPDATE Dummy
SET [MArk] = 'new value'

1

您可以更新 NULL 值:

UPDATE Dummy
  SET Mark = "none"
WHERE Mark is NULL

将所有标记设置为“无”。

此外,在添加列时,您可以指定默认值:

ADD Mark varchar(30) NOT NULL DEFAULT 'none'

看到新的编辑。我因为一些愚蠢的原因认为 mark 是一个整数。 - Richard Schneider
什么是“不同的值”? - Richard Schneider
数值:42、45、26、87、96、48、65、24、6、45、57、59、245、356、24等。 - Jojin.Jose
和其他回答者一样,我误读了你的问题。最简单的方法是使用SQL Server Management Studio导入Excel文件。以下是逐步说明:http://www.66pacific.com/sql_server_import_from_excel.aspx - Richard Schneider
另外,我建议将“Mark”数据类型更改为“Int”。 - Richard Schneider

1

要更新Excel表格中的值,您需要在Excel文件中编写查询(使用CONCATENATE函数),并在表格上运行它。


1

你的代码是:update Dummy set Marks = 10 where Student_Names = 你想要添加分数的学生姓名

这样你就可以给所有学生添加分数了。

祝你好运!


我有N个学生,我怎样可以为每个学生应用where条件?还有其他方法可以添加这些分数吗? - Jojin.Jose

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接