网上找到一条sql.
EXEC sp_MSforeachdb @command1
= 'IF EXISTS( SELECT Name FROM [?].SYS.OBJECTS WHERE CharIndex(''@tableName'', Name) > 0)
PRINT ''?'''
执行时,提示命令已完成。可是仍然不知道属于哪个数据库。
菜鸟求助!
4 个解决方案
#1
DECLARE @Tab TABLE(DBName sysname)
INSERT INTO @Tab
( DBName )
EXEC sp_MSforeachdb @command1
= 'SELECT ''?'' FROM [?].SYS.OBJECTS WHERE Name=''表名'''
SELECT * FROM @Tab
#2
EXEC sp_MSforeachdb @command1
= 'IF EXISTS( SELECT Name FROM [?].SYS.OBJECTS WHERE CharIndex(''表名'', Name) > 0)
PRINT ''?'''
--这是有对象为表名的都成立,打印DBNAME
如:表名为:T
TT/T--只能有对象T都成立
= 'IF EXISTS( SELECT Name FROM [?].SYS.OBJECTS WHERE CharIndex(''表名'', Name) > 0)
PRINT ''?'''
--这是有对象为表名的都成立,打印DBNAME
如:表名为:T
TT/T--只能有对象T都成立
#3
declare @tsql nvarchar(1000),
@tablename nvarchar(200)
select @tablename=N'[表名]'
select @tsql=N'if exists(select 1 from [?].sys.tables where name='''+@tablename+N''') print ''Database Name: ''+''?'' '
exec sys.sp_Msforeachdb @tsql
#4
谢谢 roy_88
搞定。
搞定。
#1
DECLARE @Tab TABLE(DBName sysname)
INSERT INTO @Tab
( DBName )
EXEC sp_MSforeachdb @command1
= 'SELECT ''?'' FROM [?].SYS.OBJECTS WHERE Name=''表名'''
SELECT * FROM @Tab
#2
EXEC sp_MSforeachdb @command1
= 'IF EXISTS( SELECT Name FROM [?].SYS.OBJECTS WHERE CharIndex(''表名'', Name) > 0)
PRINT ''?'''
--这是有对象为表名的都成立,打印DBNAME
如:表名为:T
TT/T--只能有对象T都成立
= 'IF EXISTS( SELECT Name FROM [?].SYS.OBJECTS WHERE CharIndex(''表名'', Name) > 0)
PRINT ''?'''
--这是有对象为表名的都成立,打印DBNAME
如:表名为:T
TT/T--只能有对象T都成立
#3
declare @tsql nvarchar(1000),
@tablename nvarchar(200)
select @tablename=N'[表名]'
select @tsql=N'if exists(select 1 from [?].sys.tables where name='''+@tablename+N''') print ''Database Name: ''+''?'' '
exec sys.sp_Msforeachdb @tsql
#4
谢谢 roy_88
搞定。
搞定。