SQL Server: 高速判断某个库是否存在某个对象 (表/函数/存储过程等均可)
SQL Server: 快速判断某个库是否存在某个对象 (表/函数/存储过程等均可)
主要是用于服务器上多个同类db的查找...
--遍历所有数据库,快速判断某个库是否存在某个对象 (表/函数/存储过程等均可) 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的查找...