Sql server 在MicrosoftSQLServerManagementStudio 2005中,如何查找表所在的数据库,以及您知道其名称(例如dbo.mytable1)?
我知道我要查找的表的名称。我使用的是MicrosoftSQLServerManagementStudio 2005,我想搜索我在Studio中连接到的数据库服务器中的所有数据库。这可能吗?是否需要查询系统表?您可以使用sp\MSforeacheachdbSql server 在MicrosoftSQLServerManagementStudio 2005中,如何查找表所在的数据库,以及您知道其名称(例如dbo.mytable1)?,sql-server,database,sql-server-2005,Sql Server,Database,Sql Server 2005,我知道我要查找的表的名称。我使用的是MicrosoftSQLServerManagementStudio 2005,我想搜索我在Studio中连接到的数据库服务器中的所有数据库。这可能吗?是否需要查询系统表?您可以使用sp\MSforeacheachdb sp_MSforeachdb“如果存在,请从sys.tables中选择*,其中[Name]=TableName PRINT?” 您可以使用sp_MSforeacheachdb sp_MSforeachdb“如果存在,请从sys.tables中选
sp_MSforeachdb“如果存在,请从sys.tables中选择*,其中[Name]=TableName PRINT?” 您可以使用sp_MSforeacheachdb sp_MSforeachdb“如果存在,请从sys.tables中选择*,其中[Name]=TableName PRINT?” 使用master 声明@db_name varchar128 声明@DbID int 声明@sql_字符串nvarchar4000 声明@TableName varchar30 选择@TableName= 不计较 创建表[tblDatabaseName] [DbName][varchar]128不为空, [TableName][varchar]128不为空 声明db\u光标向前\u仅用于
SELECT name, DbID
FROM master..sysdatabases
WHERE name NOT IN ('northwind', 'pubs')
AND (status & 32) <> 32 --loading.
AND (status & 64) <> 64 --pre recovery.
AND (status & 128) <> 128 --recovering.
AND (status & 256) <> 256 --not recovered.
AND (status & 512) <> 512 --Offline
AND (status & 32768) <> 32768 --emergency mode.
AND DbID > 4
结束
取消分配db_游标
从tblDatabaseName中选择*
删除表tblDatabaseName使用主控
声明@db_name varchar128
声明@DbID int
声明@sql_字符串nvarchar4000
声明@TableName varchar30
选择@TableName=
不计较
创建表[tblDatabaseName]
[DbName][varchar]128不为空,
[TableName][varchar]128不为空
声明db\u光标向前\u仅用于
SELECT name, DbID
FROM master..sysdatabases
WHERE name NOT IN ('northwind', 'pubs')
AND (status & 32) <> 32 --loading.
AND (status & 64) <> 64 --pre recovery.
AND (status & 128) <> 128 --recovering.
AND (status & 256) <> 256 --not recovered.
AND (status & 512) <> 512 --Offline
AND (status & 32768) <> 32768 --emergency mode.
AND DbID > 4
结束
取消分配db_游标
从tblDatabaseName中选择*
drop table tblDatabaseNamesp_MSForEachDB是一个未记录的过程,可以为您执行此操作。输出有点困难,所以我把它留给你
EXEC sp_MSForEachDB 'USE [?] IF EXISTS(SELECT * FROM Sys.Objects WHERE Type = ''U'' AND Name = ''Product'') PRINT ''?'''
sp_MSForEachDB是一个未记录的过程,可以为您执行此操作。输出有点困难,所以我把它留给你
EXEC sp_MSForEachDB 'USE [?] IF EXISTS(SELECT * FROM Sys.Objects WHERE Type = ''U'' AND Name = ''Product'') PRINT ''?'''
如上所述,但使用系统功能而不是系统表
EXEC sp_MSForEachDB 'USE [?] IF OBJECT_ID(''dbo.mytable'') IS NOT NULL PRINT ''?'''
如上所述,但使用系统功能而不是系统表
EXEC sp_MSForEachDB 'USE [?] IF OBJECT_ID(''dbo.mytable'') IS NOT NULL PRINT ''?'''