Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在MicrosoftSQLServerManagementStudio 2005中,如何查找表所在的数据库,以及您知道其名称(例如dbo.mytable1)?_Sql Server_Database_Sql Server 2005 - Fatal编程技术网

Sql server 在MicrosoftSQLServerManagementStudio 2005中,如何查找表所在的数据库,以及您知道其名称(例如dbo.mytable1)?

Sql 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中选

我知道我要查找的表的名称。我使用的是MicrosoftSQLServerManagementStudio 2005,我想搜索我在Studio中连接到的数据库服务器中的所有数据库。这可能吗?是否需要查询系统表?

您可以使用sp\MSforeacheachdb


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 tblDatabaseName

sp_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 ''?'''