我们有两个数据库服务器,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应用程序..
答案 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;