0

我有一个有两个表的数据库。一个表包含我环境中所有服务器的信息,如 server_name、db_name、application、Pri_dba 等,另一个表包含所有 DBA 的联系信息,如他们的电话号码电子邮件等。我想编写一个存储过程接受来自用户的 3 个值,即服务器名称、数据库和应用程序。然后,它应该根据此信息唯一标识主 DBA,并显示该 DBA 的所有联系信息。我想我可以从表 1 中识别主要 DBA 并显示表 2 中的结果。这可能是一项非常容易的任务,但我是一个新的 DBA,所以请任何人帮忙。

4

2 回答 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 回答