0

2つのテーブルを持つデータベースがあります。1つのテーブルには、server_name、db_name、application、Pri_dbaなどのフィールドを持つ環境内のすべてのサーバーの情報が含まれ、もう1つのテーブルには、電話番号の電子メールなどのすべての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 に答える