Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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
使用SQL SELECT*Insert Into语句,但缺少的列为Null_Sql_Sql Server_Sql Insert - Fatal编程技术网

使用SQL SELECT*Insert Into语句,但缺少的列为Null

使用SQL SELECT*Insert Into语句,但缺少的列为Null,sql,sql-server,sql-insert,Sql,Sql Server,Sql Insert,如果您有一个表,其中列为Type和Amount,那么另一个表包含Type、Amount和其他12列,这些列不在表1中,有没有比在下面编写更简单的方法?重复“空”12次似乎太过时了,也许吧?或者这是目前唯一已知的解决方案 这里也有类似的问题,但没有一个真正解决了多个空列的问题(从我看到的),典型的错误是“列名或提供的值的数量与表定义不匹配”。我正在使用SQL Server 2017 INSERT INTO Table2 SELECT Type ,Amount ,--

如果您有一个表,其中列为Type和Amount,那么另一个表包含Type、Amount和其他12列,这些列不在表1中,有没有比在下面编写更简单的方法?重复“空”12次似乎太过时了,也许吧?或者这是目前唯一已知的解决方案

这里也有类似的问题,但没有一个真正解决了多个空列的问题(从我看到的),典型的错误是“列名或提供的值的数量与表定义不匹配”。我正在使用SQL Server 2017

  INSERT INTO Table2 
  SELECT 
    Type
   ,Amount
   ,--Insert 12 NULLs here
  FROM Table1

是的,您可以明确标识列:

插入表2中(类型、金额)
选择类型、金额
来自表1

我认为您需要一个
WHERE
子句,但这应该会让您明白。

是的,您可以明确地识别列:

插入表2中(类型、金额)
选择类型、金额
来自表1

我认为您需要一个
WHERE
子句,但这应该会让您明白。

在表名后指定列:

  INSERT INTO Table2 (Type, Amount)
  SELECT 
    Type
   ,Amount
  FROM Table1
所有其他列将获得一个
NULL
或其
默认值。

如果其他未指定的列被定义为
非空
而没有
默认值
则此操作无效。

请在表名后指定列:

  INSERT INTO Table2 (Type, Amount)
  SELECT 
    Type
   ,Amount
  FROM Table1
所有其他列将获得一个
NULL
或其
默认值。
如果其他未指定的列被定义为
notnull
,而没有
默认值,则此操作将不起作用