内のストアドプロシージャを呼び出します。 私の問題は、GetEmployeeFirstNameが従業員の姓と名を取得するためにEmployeeIDを渡さなければならないストアドプロシージャだということです。は、私は次のように読み込むにStoredProcを作成するためにattemtingていますストアドプロシージャ
ストアドプロシージャ内でstoredprocを呼び出すにはどうすればよいですか。
おかげ
マイク
内のストアドプロシージャを呼び出します。 私の問題は、GetEmployeeFirstNameが従業員の姓と名を取得するためにEmployeeIDを渡さなければならないストアドプロシージャだということです。は、私は次のように読み込むにStoredProcを作成するためにattemtingていますストアドプロシージャ
ストアドプロシージャ内でstoredprocを呼び出すにはどうすればよいですか。
おかげ
マイク
これらはおそらく関数として適しています。
GetEmployeeFirstName(ep.EmployeeID)、GetEmployeeLastName(ep.EmployeeID)
いっそのこと、名前だけを持つテーブルを結合します。
あなたはEXEC
またはsp_executesql
が別のストアドプロシージャからストアドプロシージャを実行するために使用することができます。 (あなたはあなたのRDBMSを指定していません)。
テーブルEmployeeDetailには、従業員の姓と名が含まれていませんか?
Select
ep.EmployeeID, ed.FirstName
ed.LastName, ed.EmployeeDateOfBirth,
ed.EmployeeAddress, ed.EmployeeAddress2,
ed.City, ed.State, ed.ZipCode
From
EmployeeProfile ep
inner join EmployeeDetail ed ON ep.EmployeeID = ed.EmployeeID
SQL Serverでは、GetEmployeeLastNameをSelectステートメントリスト内で呼び出すために、データベース関数に変換します。
私はこれらのストアドプロシージャが何をするのか分かりません。姓と名がEmployeeProfileテーブルになくても、返される前に文字列を操作しなければならない場合でも、結合はストアドプロシージャや関数よりもはるかに優れたソリューションになります。特にパフォーマンスを考慮する場合。
GetEmployeexName sprocsを他の場所で使用しているため、これは問題ありません。彼らが何をしても、あなたの質問から呼び出されなければ、コードの重複は考慮しません。
結果セットの各行に対して、2つの他のプロシージャまたは関数が呼び出されることを理解する必要があります。これは非常にコストがかかり、数千人の従業員の比較的小さな結果セットであっても、アプリケーションを許容できないほど遅くする可能性があります。私が話していることは分かっています。最近のデータベースチューニングイニシアチブでは、クエリから多くの関数呼び出しを削除しました。
実際のSQLは、実際のデータベースの種類によって異なります... – uzbones