欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

sql server: 高速判断某个库是否存在某个对象 (表/函数/存储过程等均可)

更新时间: 2014-01-05 02:07:27 责任编辑: Author_N1

 

SQL Server: 快速判断某个库是否存在某个对象 (表/函数/存储过程等均可)

--遍历所有数据库,快速判断某个库是否存在某个对象 (表/函数/存储过程等均可)
SET NOCOUNT ON
DECLARE @obj_Name VARCHAR(MAX),@i INT,@iMax INT,@dbName VARCHAR(MAX),@sql NVARCHAR(MAX),@isExists INT;
DECLARE @dbList TABLE (rowNum INT, dbName VARCHAR(MAX), isExists BIT DEFAULT(0));
SET @obj_Name = 'Fun_Mobile_Type'		--设置查找对象
INSERT INTO @dbList (rowNum, dbName) SELECT ROW_NUMBER() OVER (ORDER BY NAME), name FROM sys.databases d WHERE d.name NOT IN ('master','model','msdb','tempdb')
SELECT @i=1,@iMax=COUNT(1) FROM @dbList --设定循环变量
--循环所有DB
WHILE @i<=@iMax
BEGIN
	SELECT @dbName=dbName FROM @dbList dl WHERE dl.rowNum=@i;
	SET @sql='SELECT @isExists=count(1) FROM '+@dbName+'.sys.objects WHERE object_id = OBJECT_ID('''+@dbName+'.[dbo].'+@obj_Name+''')';
	exec sp_executesql @sql, N'@isExists int output', @isExists output
	UPDATE @dbList SET isExists = 1 WHERE rowNum=@i AND @isExists > 0
	SET @i=@i+1;
END
--查看结果
SELECT * FROM @dbList

主要是用于服务器上多个同类db的查找...

上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:07:27
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/5894/
本文WWW.DOC100.NET DOC100.NET版权所有。