我目前在数据库中使用的特定SQL Server表存在问题,当我选择的记录来自自己时,我无法在此表上运行insert语句。
以下是声明:
insert into [Custom Work] ([Description], [Price], [Cost], [Labour Cost], [Made In Material], [Bought Out Material], [Weight], [Machine Shop], [Axles], [Stakes/Bunks], [Beam], [GNK], [Parts], [Line], [Step 1], [Step 2], [Blast], [Paint], [Finish], [Finish - GNK], [Final Assembly], [Shipping], [Eng Hours], [Option Date])
select
[Description], [Price], [Cost], [Labour Cost],
[Made In Material], [Bought Out Material], [Weight],
[Machine Shop], [Axles], [Stakes/Bunks], [Beam],
[GNK], [Parts], [Line], [Step 1], [Step 2],
[Blast], [Paint], [Finish], [Finish - GNK],
[Final Assembly], [Shipping], [Eng Hours], [Option Date]
from
[Custom Work]
where
Description = 'custom stuff'
and Quote# = 123456
当我从另一个表中插入记录时(比如当我们将标准选项添加为自定义工作时),它就像它一直有效一样!但是当我从它自己插入记录时,它会在这里和那里工作,但随后会超时(从Access运行时)或永远继续(如果从SSMS运行)。
这是在我进行了一些表结构更改之后开始发生的,但是我对我们的标准选项表进行了相同的结构更改...所以,如果我不能将记录插入到自身中,我就不应该这样做能够从另一个表中插入记录! :|
我也有一段时间来帮助诊断这个问题,但它并没有为潜在客户提供太多帮助......
没有针对此表设置的触发器,select / update语句也可以正常工作(来自我已经完成的所有实验)!我甚至在几小时后重启了SQL Server(运行SQL Server 2008 R2)(通常会为我解决这个问题),但这次没有。
我猜测是否存在损坏的表属性(外键/主键,约束,索引,统计信息等)?任何帮助将不胜感激:)
编辑:此表上的drop和create语句是否会修复此问题?如果没有,请删除并重新创建所有表属性?
答案 0 :(得分:1)
您是否尝试过使用WITH(NOLOCK)?
insert into [Custom Work] ([Description], [Price], [Cost], [Labour Cost], [Made In Material], [Bought Out Material], [Weight], [Machine Shop], [Axles], [Stakes/Bunks], [Beam], [GNK], [Parts], [Line], [Step 1], [Step 2], [Blast], [Paint], [Finish], [Finish - GNK], [Final Assembly], [Shipping], [Eng Hours], [Option Date])
select
[Description], [Price], [Cost], [Labour Cost],
[Made In Material], [Bought Out Material], [Weight],
[Machine Shop], [Axles], [Stakes/Bunks], [Beam],
[GNK], [Parts], [Line], [Step 1], [Step 2],
[Blast], [Paint], [Finish], [Finish - GNK],
[Final Assembly], [Shipping], [Eng Hours], [Option Date]
from
[Custom Work] WITH (NOLOCK)
where
Description = 'custom stuff'
and Quote# = 123456
答案 1 :(得分:0)
通过与Yugz聊天讨论这个问题之后,这个问题一直存在于这个特定的表中,因为我的前端Acccess数据库仍然在这个表上有锁定记录(这导致我的无锁插入语句旋转并阻碍SQL性能)。另外,我还没有定期重建我的SQL数据库索引。
因此,对于遇到此问题的其他人,请确保选择数据的前端应用程序不会锁定记录并重建索引! :)