sql - 插入语句不为一个字段插入值

标签 sql sql-server-2008 tsql

所以我正在为我正在开发的程序编写一些 SQL,我遇到了一个我以前从未真正见过的奇怪问题。这是给我带来麻烦的查询:

insert into [db].[dbo].[table] (JobNum, JobSeq, OperationNumber, WorkCenter,
 ResourceGroup, Material, MaterialQuantity, MaterialCost, LbrHoursPerPiece, 
 ExtendedDescription, PreviousMaterial, UniqueID) 
values ('J000001234', 1234, 123, 'UFAN', 'FANASSY', '12345678', 
 4, 50, 1, 'DESC', '', '')

然后我从同一张表中选择:
SELECT * FROM [db].[dbo].[table]
where JobNum = 'J000001234'

这是返回的内容:

query results

出于某种原因,即使我给它一个值 50,MaterialCost 字段显示为 NULL,我无法弄清楚为什么当其他所有东西都被正确插入时。这是表格设计,以防万一:

Table Design

有什么想法吗?

编辑:我想指出,虽然这是我在 .NET 代码中使用的查询,但现在我只在 SQL Server Management Studio 中测试它。

此外,评论者要求创建查询,因此:
...
CREATE TABLE [dbo].[table](
[JobNum] [nvarchar](20) NOT NULL,
[JobSeq] [int] NOT NULL,
[OperationNumber] [int] NULL,
[WorkCenter] [nvarchar](6) NULL,
[ResourceGroup] [nvarchar](30) NULL,
[Material] [nvarchar](30) NULL,
[MaterialQuantity] [decimal](18, 8) NULL,
[MaterialCost] [decimal](18, 5) NOT NULL,
[LbrHoursPerPiece] [decimal](10, 5) NULL,
[ExtendedDescription] [nvarchar](300) NULL,
[PreviousMaterial] [nvarchar](300) NULL,
[UniqueID] [varchar](200) NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING ON
GO

ALTER TABLE [dbo].[Table] ADD  CONSTRAINT     [DF_Table_MaterialCost]  DEFAULT ((0.00)) FOR [MaterialCost]
GO

编辑 2:所以我采用了 CREATE TABLE 查询并用它来创建另一个表 tableTEST,它与故障表相同。在 TEST 表上执行相同的查询时,它运行良好。我还想指出,未获得正确数据的 MaterialCost 字段是在最初创建后很久才添加到表中的。

最佳答案

最后,我能够在没有发现根本原因的情况下解决问题。 MaterialCost 字段在它已经有相当多的数据之后很晚才被添加到表中,所以那里显然发生了一些奇怪的事情。

为了解决我的问题,我创建了原始表的副本,将所有数据复制到新表中,然后删除了原始表。这样做之后,插入语句正常工作。所以就像我说的,它现在有效,但我真的没有任何关于根本原因的细节,除了那个领域是新的。

关于sql - 插入语句不为一个字段插入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10939760/

相关文章:

php - 仅当两个条件都满足时才在单个 sql 语句中选择两行

sql - 如何从访问日志中选择 DISTINCT(username) 和 MAX(timestamp) - postgresql

sql-server - 解决 SQL Server 连接问题

sql - SQL Server 2005(也适用于2008)中遇到异常时继续在临时表中插入数据

SQL Filter 日期范围查询

sql - Join 和 Pivot 语句 SQL Server

sql - SSRS 2008 R2 - 从报表服务器链接以纵向而不是横向打印

python - sqlalchemy 过滤器中的安全参数绑定(bind)

sql-server - 无效的对象名称 'CHANGETABLE'

sql-server - 在插入 XML 字段之前过滤重复节点