【问题标题】:Copy data from one table to another while at the same time insert a guid SQL将数据从一个表复制到另一个表,同时插入一个 guid SQL
【发布时间】:2020-05-19 03:58:17
【问题描述】:

我在一个名为“AnyName”的现有表中有超过 13,000 条记录

我需要将记录移动到一个名为“DomainObject2”的新表中,该表将有一个名为“Oid”的 Guid 主列

执行以下代码时出现以下错误。

无法将值 NULL 插入到列“Oid”、表“NewDatabase.dbo.DomainObject2”中;列不允许空值。插入失败。

    USE NewDatabase

INSERT INTO NewDatabase.dbo.DomainObject2

 ([Ano]
           ,[C1]
           ,[C2]
           ,[C3]
           ,[C4]
           ,[C5]
           ,[CF]
           ,[CF2]
           ,[CF3]
           ,[CF4]
           ,[CF5])
SELECT 
[ano]
           ,[c1]
           ,[c2]
           ,[c3]
           ,[c4]
           ,[c5]
           ,[cf]
           ,[cf2]
           ,[cf3]
           ,[cf4]
           ,[cf5]
FROM AnyName.dbo.[Old_Table]; 

GO```



Thanks in advance!!!

【问题讨论】:

  • 插入列表中有 11 列,但选择列表中有 13 列。这会在出现数据问题之前引发运行时错误,所以我认为我们可能无法全面了解正在发生的事情。
  • 列的数量比您看到的要多得多,但它们都一样,不用担心列的数量,但谢谢!埃里克

标签: sql sql-server


【解决方案1】:

试试这个:

INSERT INTO NewDatabase.dbo.DomainObject2

 ([Oid]
           ,[Ano]
           ,[C1]
           ,[C2]
           ,[C3]
           ,[C4]
           ,[C5]
           ,[CF]
           ,[CF2]
           ,[CF3]
           ,[CF4]
           ,[CF5])
SELECT     NewID()
           ,[ano]
           ,[c1]
           ,[c2]
           ,[c3]
           ,[c4]
           ,[c5]
           ,[cf]
           ,[cf2]
           ,[cf3]
           ,[cf4]
           ,[cf5]
FROM AnyName.dbo.[Old_Table]; 

【讨论】:

  • 您好,谢谢! rumata28,你试过这个吗?因为我得到了这个新错误 INSERT 语句的选择列表包含的项目少于插入列表。 SELECT 值的数量必须与 INSERT 列的数量相匹配。由于我必须将 Oid 列添加到新表中,现在 NewTable 上多了一个列
  • @Luk - 试试这个它会起作用,因为你没有选择 guid 列并且在你从旧表插入的所需表中,[oid] 将是必需的或不是空字段.. 那为什么您一定遇到了错误...请尝试上述查询,然后更新给我们。谢谢。
  • 你是对的,对不起,我没有尝试 - 如果你为你的表提供“创建表”,我会的。确实,select 还有 2 列(我是从您的原始帖子中复制的吗?)。无论如何,请确保选定的列(包括第一个 NewID() 表达式,它为 Oid 列选择值和插入列相互匹配以满足您的要求。
  • rumata28,我确实编辑了原始消息以删除额外的列,但我仍然收到相同的错误 INSERT 语句的选择列表包含的项目少于插入列表。 SELECT 值的数量必须与 INSERT 列的数量相匹配。我有相同的列,包括插入语句中的 Oid 和 select 语句之后的 NewID()
  • 我有没有提到 Oid 是一个 guid?
猜你喜欢
  • 1970-01-01
  • 2020-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多