データベースに次のストアドプロシージャを定義します
CREATE PROCEDURE GetAll_SP
(
@FirstName VARCHAR(50)
)
AS
BEGIN
(SELECT 1, first_name, last_name FROM UsersTable1 WHERE first_name = @FirstName)
UNION
(SELECT 2, first_name, last_name FROM UsersTable2 WHERE first_name = @FirstName)
UNION
(SELECT 3, first_name, last_name FROM UsersTable3 WHERE first_name = @FirstName)
-- ....
END
GO
を
か、次の1の代わりに、あなたは、ユーザーの場所を制御のいずれかの種類を持っている必要はありません。
CREATE PROCEDURE GetAll_SP
(
@FirstName VARCHAR(50)
)
AS
BEGIN
(SELECT first_name, last_name FROM UsersTable1 WHERE first_name = @FirstName)
UNION ALL
(SELECT first_name, last_name FROM UsersTable2 WHERE first_name = @FirstName)
UNION ALL
(SELECT first_name, last_name FROM UsersTable3 WHERE first_name = @FirstName)
-- ....
END
GO
次に、あなたのコードで:
String firstName = "Jones";
using (SqlCommand cmd = new SqlCommand("GetAll_SP", m_Connection))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@FirstName", SqlDbType.VarChar).Value = firstName;
m_Connection.Open();
cmd.ExecuteNonQuery();
}
なぜ分離が必要ですか?あなたは14テーブルを結合するビューを作成することができますが、1つのテーブルを持つことでパフォーマンスが向上する可能性があります。 –
私は後でアプリを拡張する方法を知っていないので、私はスタッフをカテゴリに分けたかった。すべてのカテゴリーとすべてのスタッフを1つのカテゴリーに入れるのではなく、Sales、Technical Dept、Managerなどのアイディアが好きだった。私はあなたが言っているものを得るが、私はこれらすべての人の共通の土台を作る必要がある。 –
@NikosKapなぜ各カテゴリのテーブルを作成するのではなく、各ユーザーのカテゴリを割り当てるだけではないのですか? – Neir0