【问题标题】:INSERT INTO statement in a specific column特定列中的 INSERT INTO 语句
【发布时间】:2015-08-10 00:04:37
【问题描述】:

例如,我有一个具有不同字段名称(列)的表,假设 5 列并且它们都是空的。我想在一个特定的列中插入数据。是否可以?我正在寻找这样的例子,但不幸找到了一个。大多数插入语句示例都需要填充所有列。如果可能的话,你能给我正确的语法吗?很抱歉,如果我缺乏研究或已经被问到,如果您将我重定向到链接,没关系。

【问题讨论】:

  • 插入还是更新?如果只插入五列中的一列,那么其他四列呢,留空?
  • 插入。是的,然后程序的后面部分会将值插入到剩余的列中。

标签: ms-access insert-into


【解决方案1】:

如果你想插入column3,另一个留空:

INSERT INTO table_name (column1,column2,column3,column4,column5)
VALUES ("","","VALUE","","");

程序的另一部分将UPDATE其他列:

UPDATE table_name
SET column1=value1,column2=value2,column4=value4,column5=value5
WHERE some_column=some_value;

【讨论】:

  • 我想出了那个解决方案,谢谢。如果不同的数据类型怎么办?即日期/时间,是/否。
  • 数据类型无所谓,方法一样,只需要注意字符串用"换行
  • 顺便说一句,我在 c# 中使用此语法,看起来这不起作用,也许需要修复,你能告诉我吗?
【解决方案2】:

关于如何构造INSERT INTO 语句的文档在这里:INSERT INTO Statement (Microsoft Access SQL)

但基本上,您只需要明确说明要为哪些列插入值,并省略其他列,如下所示:

INSERT INTO table (colname) VALUES ('colvalue')

您省略的字段会发生什么情况?文档说:

当您不指定每个字段时,会为缺失的列插入默认值或Null

【讨论】:

  • 如果我要在 2 个不同的列中插入 2 个值,这是否有效:INSERT INTO table ([colname1], [colname2]) VALUES ("val1","val2")
  • 是的,没有[],这样INSERT INTO table (colname1, colname2) VALUES ("val1","val2");
  • 是的,您的报表结构看起来不错。在列名周围使用[] 方括号很好,只是不是绝对必要的,除非您的列名有空格。以及如何指定实际值将取决于数据类型。但如果是文本,我认为您可以将字符串值用单引号或双引号括起来。但作为标准,最好使用单引号,如果您在 C# 中编写查询,它会让您不必担心转义双引号。
猜你喜欢
  • 2014-09-05
  • 2011-12-04
  • 1970-01-01
  • 2017-04-21
  • 1970-01-01
  • 1970-01-01
  • 2015-02-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多