两个服务器,取消链接,子选择涉及两者

时间:2014-05-01 13:25:42

标签: sql sql-server-2008 vb6

我们有两个数据库服务器,db1和db2,取消链接。我无法联系他们。

我的查询类似于:

    SELECT name, modify_date
    FROM sys.objects
    where col = value and datecol >= datevalue and
          not exists(select ObjectName
                     from table2
                     where ObjectName = sys.objects.name and
                           DateTime > sys.objects.modify_date and
                           ObjectType = Type
                    )
    order by xxxx

最初这样可以正常工作,因为我们正在查看DB1的更改。既然我正在修改程序以查看两个数据库服务器以查找创建的新对象,那么DB2上的DB1上的表就不存在了,我需要找到一种方法来以某种方式重写查询,这将允许我从DB1上的表中检索信息,然后在db2上进行比较时使用它。

我一直在尝试像

这样的事情
    SELECT name, modify_date
    FROM sys.objects
    where col = value and datecol >= datevalue and
          not exists('Value1', 'Value2', 'Value3')
    order by xxxx

这样我就可以返回子查询,构建一个字符串,并将其放回。但是,执行SQL部分的语法是我的意思。我宁愿远离" col<> '值1'和col<> '值2'和col<> '值3'

有人有任何建议吗?

使用SQL Server 2008并修改尚未准备好重写为.net的旧vb6应用程序..

1 个答案:

答案 0 :(得分:1)

正确的语法是not in

SELECT name, modify_date
FROM sys.objects
where col = value and datecol >= datevalue and
      col not in ('Value1', 'Value2', 'Value3')
order by xxxx;