0

我正在运行以下查询,由于生产数据库正在使用复制,因此我们在结果中获取了为复制添加的所有表(例如 MSpeer_conflictdetectionconfigrequest、MSpeer_conflictdetectionconfigresponse)。

SELECT name FROM sysobjects WHERE type='U' AND name != 'sysdiagrams'

我们需要调整这个查询,使这些表不显示。我当然可以做一个name NOT IN ()并将它们全部列出,但我正在寻找一个更好的解决方案。

谢谢你的帮助。

4

2 回答 2

0
SELECT name .
FROM sysobjects 
WHERE type='U' 
  AND name != 'sysdiagrams' 
  AND replinfo = 0

但是: http: //msdn.microsoft.com/en-us/library/ms177596.aspx 请注意 sysobjects 和 replinfo 似乎已弃用。

0=not replicated
128 = merge - table or indexed view
1=transactional - table or indexed view - log based
3=transactional - table or indexed view - log based with custom sync object
33=transactional - table or indexed view - immediate updating

35=transaction- table or indexed view - log based with custom sync object
and custom filter
129 =merge and transactional - table or indexed view

64 - procs used by immediate updating
512 - all other procsprocs, views, functions
于 2012-05-19T15:44:17.007 回答
0

由于您使用的是 SQL 2008,我建议使用 ff:

select * from sys.tables where is_ms_shipped = 0
于 2012-05-20T17:47:35.473 回答