2012-09-25 18 views
-1

我有一個有兩個表的數據庫。一個表包含我的環境中的所有服務器的信息,如server_name,db_name,application,Pri_dba等實體,另一個表包含所有DBA的聯繫信息,例如他們的電話號碼電子郵件等。我想編寫一個存儲過程,接受來自用戶的3個值,即服務器名稱,數據庫&應用程序。然後,它應根據此信息唯一標識主DBA,並顯示該DBA的所有聯繫信息。 我想我可以識別表1中的主DBA並顯示錶2中的結果。 這可能是一項非常簡單的任務,但我是一名新的DBA,因此任何人都可以提供幫助。從用戶接受參數並顯示結果的存儲過程

+0

你試過編寫查詢你想拉的信息嗎? –

+0

很好。你有什麼嘗試? – podiluska

+0

所有我到現在爲止是「選擇* from contact_info a where a.dba = b.pri_dba」b是第一張桌子......但我不知道如何在我的querry中引用它... – user1688976

回答

0

嘗試這樣的事情。顯然你需要替換correwct列名...

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' 
+0

非常感謝你.... – user1688976

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' 

希望這有助於!

+0

謝謝......這正是我所需要的...... – user1688976