【问题标题】:Why does this simple SQL query from SQL Server 2000 have different results in SQL Server 2008?为什么这个来自 SQL Server 2000 的简单 SQL 查询在 SQL Server 2008 中有不同的结果?
【发布时间】:2012-01-15 18:19:08
【问题描述】:

使用 MS SQL 2000 可以进行如下查询:

SELECT (Code + ' = ' + EdiNumber + ',') AS MyResult FROM tblCountry

这会给你一个结果列表,例如:

MyResult
========
ZW = 263,
ZA = 27,
...

但是,在 MS SQL 2008 中,查询返回:

-1 records affected

有谁知道 a) 为什么? b) 如何从 SQL 2008 获取 SQL 2000 结果?

更新

我只是使用标准的 ASP.NET 连接字符串通过控制台连接到数据库来发布查询:

Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyDB.mdf;Integrated Security=True;User Instance=True; Database=MyDB

【问题讨论】:

  • 您有一些安全限制吗?尝试从“sa”执行查询
  • 你用什么工具来执行这个查询?
  • -1 records affected 是数据库输出(元数据),而不是您的查询结果。无论您使用什么工具运行,您都可能在错误的窗口中查看..
  • @StevieG:当我运行SELECT Code FROM tblCountry 时,结果显示正常

标签: asp.net sql sql-server-2008 sql-server-2000


【解决方案1】:

问题已解决

-1 records affected 显然是非特权结果,因为在尝试连接 string(代码)和 int(EdiNumber)时,实际发生的只是查询中的错误

正确的查询应该是:

SELECT (Code + ' = ' + CAST(EdiNumber AS VARCHAR) + ',') as MyResult FROM tblCountry

一旦我得到正确的结果,查询就可以在原始控制台中正常运行。

【讨论】:

  • 您的代码似乎隐藏了异常消息。您不需要任何特定权限即可查看这些内容。
猜你喜欢
  • 2011-11-20
  • 2012-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多