我在安装SQL Server 2008 R2(Express)时遇到了一些麻烦。似乎有两个表以“并行”方式运行。
如果我运行以下查询:
USE [database];
SELECT * FROM [dbo].[events] WHERE 1=1;
我得到了我期望的结果。但是,如果我运行此查询,我会得到一个完全错误的数据集:
SELECT * FROM [database].[dbo].[events] WHERE 1=1;
数据正在被各种程序发送到数据库中 - 显然这些应用程序中的一个(或多个)做错了。应用程序通过C#LINQ连接到数据库 - > SQL DBML,DBML(我无法修改)使用events
作为表名(理想情况下它会使用dbo.events
,但我无法修改/重新创建它。)
有没有人见过这个?有没有办法让两个查询等效?如有必要,我可以重新创建数据库 - 那里的数据并不重要。
如果我在SQL Management Studio中加载数据库并右键单击以选择“选择顶部[1000]行” - 它会执行第二个查询(给出错误结果的查询...)。
编辑:
答案 0 :(得分:1)
看起来马丁是正确的。有人弄乱了这个特定的服务器并在不同的数据库中创建了具有完全相同名称的表,然后设置了一些不正确的设置以使坏数据库成为默认数据库。
删除伪造数据库修复了问题。