在MS SQL Server 2000安装中,我有许多存储过程从数据库中存储数据而不是存储数据。所有选择都发生在同一个数据库服务器上。例如:
select * from [OtherDatabase]..table
如何在没有眼球的情况下找到哪种程序做什么?
答案 0 :(得分:4)
以下是存储过程,它将搜索任何存储过程中包含的文本。您可以使用它来搜索可能被调用的各种数据库。
CREATE PROCEDURE FindTextInSP
@StringToSearch varchar(100)
AS
SET @StringToSearch = '%' +@StringToSearch + '%'
SELECT Distinct SO.Name
FROM sysobjects SO (NOLOCK)
INNER JOIN syscomments SC (NOLOCK) on SO.Id = SC.ID
AND SO.Type = 'P'
AND SC.Text LIKE @stringtosearch
ORDER BY SO.Name
GO
答案 1 :(得分:1)
此代码是否会...您需要临时连接到其他服务器上的数据库?你需要成为'系统管理员'小组的成员才能工作......最重要的是......这可能是错的,随便指出这一点......
USE MASTER GO sp_addserver @server='AnotherSQLServer' USE [AnotherSQLServer].Master GO IF EXISTS (SELECT name FROM [AnotherSQLServer].sysobjects WHERE name = 'some_proc' AND type = 'P') THEN ' DO WHAT YOU HAVE TO DO 'DROP PROCEDURE some_proc END GO USE MASTER GO sp_dropserver @server='AnotherSQLServer'