2011-10-27 14 views
1

私はC#コードから呼び出すときに、プロシージャ/関数を使用してデータベース(+スキーマ、データ、プロシージャ、ロール)を作成する必要があります。ストアドプロシージャ/関数を使用してデータベース、テーブル、プロシージャを作成していますか?


状況:

私は、ユーザーが新しい会社を作成することが可能なmasterDBデータベースを持っています。彼が新しい会社を作るとき、新しいデータベース(例えば:nike2011)を作成しなければなりません(ddlスクリプト:テーブル+ストアドプロシージャはプロシージャ/スクリプトのどこかに格納されます)。

他のデータベース(例:nike2010、cocacola2009)からカタログをコピーする場合は、選択したデータベースからデータベースnike2011にデータをコピーする必要があります。

dbを作成した後、すべてのSQL Serverユーザーに新しく作成したデータベースを付与する必要があります。


私は、ストアドプロシージャを使用してみましたが、私は、新しいデータベースを作成するためのストアドプロシージャの内部でストアドプロシージャを作成することはできません、と私は、ストアドプロシージャに「使用nike2010」を使用することはできません。

ご理解ください。

+0

一般に、新しいデータベース全体を作成することは、(単一のデータベースにデータを分割するのではなく)悪い考えです。 100%あなたがやっていることが、この道をはるか遠くに行く前にそれを行う正しい方法であることを確かめてください。 – Jamiec

+0

私はこのコメントを期待していました。残念ながら、毎年新しいdbを作成するという決定は私のものではありませんでした。 – davor

答えて

2

たとえば、sp_executesqlを使用して動的SQL(文字列を使用して作成されたSQL)を実行する必要があります。

+0

ありがとう、私は試してみます。 – davor

関連する問題