问题:我正在使用SQL Server 2012企业管理工作室,Intellisense
正在开启和关闭。如果我连接到2012服务器和实例,它会在一天内变化。当我连接到2008R2服务器和实例时,它始终正常运行(荒谬)。 Aaron Bertrand写了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%';
但我不太清楚你的目标是什么。