【发布时间】:2011-02-23 04:28:56
【问题描述】:
我有一个可以正常工作的 INSERT 查询,但是当我添加一个额外的字段时,我得到了非常有用的信息:
无效的对象名称“优化”
优化是表名。查询如下......我完全不知道为什么这不起作用。如果我将查询剪切并粘贴到 MSSQL Management Studio 中,查询工作正常。
INSERT INTO [optimizations]
([opt_date],[opt_concept_id],[opt_pallet],[opt_turnable],
[opt_sideupok],[opt_endupok],[opt_flatok],[opt_notstickingout],
[opt_notinoverhang],[opt_itemsloaded],[opt_loadedweight],
[opt_pweightutil],[opt_pvolumeutil],[opt_request_xml],
[opt_response_xml],[opt_images],[opt_primary_stage_id])
VALUES
(GETDATE(),'775','20ft','true','false','false','true',
'true','true','10','5952.6','18.6','48.9',
'<xml><herpa><derpa>xml</derpa></herpa></xml>',
'<xml><herpa><derpa>xml</derpa></herpa></xml>',
'img1.jpg,img2.jpg,img3.jpg','98');
由于某种原因,如果我在查询 [opt_primary_stage_id] 中包含最后一个字段,它就不起作用……如果我省略这个字段,它就可以正常工作。有趣的是,如果我将[opt_primary_stage_id] 添加到正在传递的字段列表中,并将其传递给NULL 的值,则查询也可以正常工作。 [opt_primary_stage_id] 字段的数据类型是 INT,我尝试将 VALUES() 部分的最后一个条目作为直号 (3) 和引号 ('3') 包含在内......两者都不起作用。
执行代码的服务器正在运行 PHP 4.3.9,在 IIS 和 MSSQL 下运行。
这是查询的一个版本,使用相同的数据。
INSERT INTO [optimizations]
([opt_date],[opt_concept_id],[opt_pallet],[opt_turnable],
[opt_sideupok],[opt_endupok],[opt_flatok],[opt_notstickingout],
[opt_notinoverhang],[opt_itemsloaded],[opt_loadedweight],
[opt_pweightutil],[opt_pvolumeutil],[opt_request_xml],
[opt_response_xml],[opt_images])
VALUES
(GETDATE(),'775','20ft','true','false','false','true','true',
'true','10','5952.6','18.6','48.9',
'<xml><herpa><derpa>xml</derpa></herpa></xml>',
'<xml><herpa><derpa>xml</derpa></herpa></xml>',
'img1.jpg,img2.jpg,img3.jpg');
编辑:修复 XML 以具有正确的括号并添加工作查询。
【问题讨论】:
-
我没有答案,抱歉,但您的两个 XML 示例在“”之后缺少“>”,FWIW。
-
我们应该知道的任何触发器?
-
我很困惑这是成功的查询还是失败的查询。 [opt_primary_stage_id] 已经是查询的一部分,所以如果您再次添加它,那可能就是问题所在。
-
@changokun 我刚刚添加了工作版本
-
使用 SQL Server Profiler(如果您使用的是快速版,则使用免费的替代方法,如 AnjLab SQL Profiler)来捕获正在执行的 实际 查询 - 它可能不同/有在被执行之前被改变了。
标签: php sql-server tsql