2013-07-22 4 views
0

Проблема: Я использую SQL Server 2012 Enterprise Management Studio и Intellisense работает и выключается. Это зависит от дня, при условии, что я подключен к серверу и экземпляру 2012 года. Когда я подключен к серверу и экземпляру 2008R2, он последовательно функционирует должным образом (абсурдно). Аарон Бертран написал absolutely awesome article here about ways we can troubleshoot this in 2012. Я прошел контрольный список, и все должно быть сделано правильно, что означает, что это, вероятно, подходит для последнего элемента (поскольку он работает и выключается), хотя он отлично работает на 2008R2, кажется странным.Таблица или просмотр системных представлений

Вопрос: Вместо этого, я просто хочу, чтобы использовать скрипты, чтобы просматривать объекты, но я не найти скрипт, чтобы посмотреть на все варианты системных представлений, так что я могу выполнить, например, запросов, чтобы найти, если есть все, что связано , Например:

sys.assemblies 
sys.assembly_files 
sys.assembly_modules 
sys.assembly_references 
sys.assembly_types 

Если бы я искал:

SELECT * 
FROM sys.[TheSourceI'mSeeking] 
WHERE name LIKE '%assembl%' 

Таким образом, я мог быстро просматривать доступные представления, что у меня есть (что, где intellisense действительно может помочь) вместо того, чтобы открывать все. Когда я просматриваю sys.objects, я не вижу системных просмотров - есть ли другой способ?

Ответ (я думаю, что это он):

SELECT * 
FROM sys.all_views 
WHERE is_ms_shipped = 1 
+0

Вы просто пытаетесь получить имена системных представлений, или вы также пытаетесь разобрать код? –

ответ

1

просмотров системы сохраняются в sys.all_views.

Если вы хотите найти код представления для конкретной ссылки, вы можете сделать:

SELECT v.name, m.definition 
    FROM sys.all_views AS v 
    INNER JOIN sys.all_sql_modules AS m 
    ON v.[object_id] = m.[object_id] 
    WHERE v.is_ms_shipped = 1 
    AND m.definition LIKE '%assembl%'; 

Конечно, это будет возвращать каждый вид, который ссылается на объект с именем assembl%, а также каждый вид, что имеет это имя. Если вы хотите отфильтровать последнее:

AND v.name NOT LIKE '%assembl%'; 

Но я не совсем уверен в вашей цели.

+0

В принципе, чтобы вернуть то, что intellisense обычно возвращалось, когда я набираю ** FROM sys. ** (он показывает различные варианты, которые у меня есть, когда я начинаю просматривать просмотры). – Question3CPO