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