当我向查询添加字段时,MSSQL错误“无效的对象名称”?

时间:2011-02-23 04:28:57

标签: php sql-server tsql

我有一个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)和引号({{1} }})...都不起作用。

执行代码的服务器运行PHP 4.3.9,在IIS下使用和MSSQL。

这是查询的一个版本,其中包含可用的SAME数据。

'3'

编辑:修复XML以适当包围&amp;添加了工作查询。

1 个答案:

答案 0 :(得分:1)

添加字段不会导致其自身失败: 是有效理由。

你说它在SSMS中运行,然后它显示问题在PHP或通话中。

初步想法:

  • 命令多长时间。它是否在PHP中被截断?这是动态SQL IRL吗?

  • 用户上下文是否与客户端相同?例如,您可能在2个不同的模式中具有相同的表,具有不同的权限。

  • 连接中的数据库错误。 SELECT DB_NAME()说什么?听起来很明显,但没有对象=没有。不要忽视这个想法,并假设它是正确的背景:检查。