首页 > 数据库技术 > 详细

Run same command on all SQL Server databases without cursors

时间:2016-04-11 20:49:58      阅读:283      评论:0      收藏:0      [点我收藏+]

original: https://www.mssqltips.com/sqlservertip/1414/run-same-command-on-all-sql-server-databases-without-cursors/

--This query will return a listing of all tables in all databases on a SQL instance: 
DECLARE @command varchar(1000) 
SELECT @command = USE ? SELECT name FROM sysobjects WHERE xtype = ‘‘U‘‘ ORDER BY name 
EXEC sp_MSforeachdb @command
--This statement creates a stored procedure in each user database that will return a listing of all users in a database, sorted by their modification date
DECLARE @command varchar(1000)

SELECT @command = IF ‘‘?‘‘ NOT IN(‘‘master‘‘, ‘‘model‘‘, ‘‘msdb‘‘, ‘‘tempdb‘‘) BEGIN USE ? EXEC(‘‘CREATE PROCEDURE pNewProcedure1 AS SELECT name, createdate, updatedate FROM sys.sysusers ORDER BY updatedate DESC‘‘) END

EXEC sp_MSforeachdb @command
--This query will return a listing of all files in all databases on a SQL instance:

EXEC sp_MSforeachdb USE ? SELECT ‘‘?‘‘, SF.filename, SF.size FROM sys.sysfiles SF

 

查询跨库存储过程调用,没有直接的方法:

DECLARE @sql NVARCHAR(2000)=USE ? 
SELECT DISTINCT so.name
FROM syscomments sc
INNER JOIN sysobjects so ON sc.id=so.id
WHERE sc.TEXT LIKE ‘‘%P_ThisIsAStoredProcedure%‘‘‘

EXEC sp_MSforeachdb @sql

 

Run same command on all SQL Server databases without cursors

原文:http://www.cnblogs.com/icyJ/p/sp_MSforeachdb.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!