Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL查询返回无效的列名_Sql_Sql Server - Fatal编程技术网

SQL查询返回无效的列名

SQL查询返回无效的列名,sql,sql-server,Sql,Sql Server,使用此查询字符串: SELECT requires, level FROM (SELECT requires, level, row_number() OVER (PARTITION BY level ORDER BY z_index) rn FROM " & DBTABLE & " WHERE ProductID = '" & ProductID & "') A WHERE

使用此查询字符串:

SELECT 
    requires, level 
FROM 
    (SELECT 
         requires, level, 
         row_number() OVER (PARTITION BY level ORDER BY z_index) rn 
     FROM " & DBTABLE & " 
     WHERE ProductID = '" & ProductID & "') A 
WHERE 
     rn = 1
返回

无效的列名“z_索引”

在客户的服务器上,但在我的服务器上工作正常

不同版本的SQL Server是否会以不同的方式处理此查询


更新:我还应该提到“z_索引”列在我使用的其他查询中没有问题。只是这个特定的查询有问题。

这听起来像是两个数据库之间的模式不匹配。确保它们都定义了“z_索引”列!用您正在使用的数据库标记您的问题。不同版本的数据库之间可能存在差异,有些数据库保留关键字,不允许您将其用作列名。这些保留可能会因版本而异。我会转储模式或“descripe table”或其他内容来比较您正在使用的数据库的表标记(对于这两个实例,您称之为“我的服务器”和“客户”服务器),包括这两个实例的版本,并包括模式。我希望您以另一种方式防止sql注入,因为您没有使用参数。