C S*_*per 16 sql database sql-server sql-server-2008
我的SQL Server中有很多数据库.
我必须只搜索包含特定表名的数据库名称 Heartbitmaster
我有很多数据库,如Gotgold,DVD等等,我只是想从查询中找到包含该表的数据库名称Heartbitmaster.
我搜索过我试过查询:
SELECT
TABLE_NAME
FROM
INFORMATION_SCHEMA.TABLES
WHERE
TABLE_TYPE = 'base table'
AND table_schema = 'Heartbitmaster'
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我进一步搜索并发现:
SELECT name, database_id, create_date
FROM sys.databases
Run Code Online (Sandbox Code Playgroud)
但不知道如何进一步安排搜索表名的条件
请帮我.
C S*_*per 34
我通过以下查询完成了它:
SELECT name FROM sys.databases WHERE CASE
WHEN state_desc = 'ONLINE'
THEN OBJECT_ID(QUOTENAME(name) + '.[dbo].[heartbit]', 'U')
END IS NOT NULL
Run Code Online (Sandbox Code Playgroud)
sp_MSforeachdb 'SELECT "?" AS DB, * FROM [?].sys.tables WHERE name like ''%tablename%'''
Run Code Online (Sandbox Code Playgroud)
试试这个
| 归档时间: |
|
| 查看次数: |
53329 次 |
| 最近记录: |