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注入,因为您没有使用参数。