存储过程,接受用户的参数并显示结果

时间:2012-09-25 14:14:28

标签: sql-server sql-server-2008

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

2 个答案:

答案 0 :(得分: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'

希望这有帮助!

答案 1 :(得分: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'