【问题标题】:SQL Server insert statement inserting data partially. Not all given data is getting insertedSQL Server 插入语句部分插入数据。并非所有给定的数据都被插入
【发布时间】:2019-08-21 20:59:17
【问题描述】:

我正在将数据插入数据库中的表中。我最近在该表中添加了一个新列。现在我正在将数据插入到该表中,同时还填写所述新列。我的问题是,除了新列的数据之外,所有内容都正确插入。

任何人都可以在这里帮助我了解为什么我的新列没有被填充吗?

插入语句:

INSERT INTO [data].[{tablename}] ([Id], [Name], [{new column name}])
VALUES (NEWID(), '1', '{new column value}' )

地点:

  1. Id 的类型为 [uniqueidentifier] not null unique

  2. Name 的类型为 [nvarchar] not null

  3. [{new column name}] 的类型为 [uniqueidentifier] null

所以,这个插入语句被成功执行。 IdName 列包含一些值,但新添加的第三列不包含任何数据。

【问题讨论】:

  • 检查表上的触发器。如果您不是从 Management Studio 执行此操作,还可以使用 Profiler 检查基本的“是否已插入”条件,以查看哪些语句实际进入数据库。您的表是否真的按字面意思命名为 {tablename} 或者此语句是否经过某种预处理?
  • 如果执行三个值的insert语句,新行第三列是否包含null?
  • 是的。我在插入语句中发送了有效的 ID。但是在isert语句执行成功后它包含null。
  • 你能展示样本数据吗?新列值实际上是唯一标识符类型值吗?
  • 使它成为一个非空列,看看你得到了什么错误。只是一个调试的想法。

标签: sql-server transactions


【解决方案1】:

根据上述 cmets。我正在执行插入操作的表具有插入触发器。我刚刚更新了新添加列的触发器,然后它开始按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    相关资源
    最近更新 更多