我有一个有两个表的数据库。一个表包含我环境中所有服务器的信息,如 server_name、db_name、application、Pri_dba 等,另一个表包含所有 DBA 的联系信息,如他们的电话号码电子邮件等。我想编写一个存储过程接受来自用户的 3 个值,即服务器名称、数据库和应用程序。然后,它应该根据此信息唯一标识主 DBA,并显示该 DBA 的所有联系信息。我想我可以从表 1 中识别主要 DBA 并显示表 2 中的结果。这可能是一项非常容易的任务,但我是一个新的 DBA,所以请任何人帮忙。
问问题
1239 次
2 回答
0
由于我不知道您的数据结构,因此很难给出确切的信息,但您应该能够修改它。
CREATE PROCEDURE GetDBAForServer (@ServerName varchar(100), @DatabaseName varchar(100), @ApplicationName varchar(100))
AS
SELECT di.*
FROM server_info si
INNER JOIN dba_info di on si.pri_dba = di.id
WHERE si.name = @ServerName
AND si.dbname = @DatabaseName
AND si.appname = @ApplicationName
然后你可以把它称为:
EXEC GetDBAForServer 'Server1', 'Database3', 'Application2'
希望这可以帮助!
于 2012-09-25T14:27:05.583 回答
0
尝试这样的事情。显然,您将需要替换正确的列名...
CREATE PROCEDURE IdentifyDBA (@Srv VARCHAR(20), @DB VARCHAR(20), App VARCHAR(20))
AS
BEGIN
SELECT B.*
FROM DBATable B
INNER JOIN AssetTbl A
ON A.dba = B.Pri_DBA
WHERE A.ServerName = @Srv
AND A.DBName = @DB
AND A.AppName = @App
END
EXEC IdentifyDBA 'ServerA', 'DatabaseA', 'ApplicationA'
于 2012-09-25T14:28:30.560 回答