SQL Server 2008動的に生成されたテーブルを返す必要がある状況があり、列も動的に生成されます。SQL Server 2008でテーブル列定義を動的に生成する方法
私は1つのIDで始まったので、これはすべてクエリによって生成されました。次に、列名と型を取得しました。これがキャストの理由です。
最後のクエリは、私が望むテーブルを1つの状況で返しますが、この類似のクエリを使用していくつかのテーブルを返すことができます。
これは現在C#で実装されていますが、ストアドプロシージャや関数で実行できるはずですが、このクエリをビルドしてテーブルを返すためにいくつかのクエリを作成する方法がわかりません。
ありがとうございます。
SELECT ResultID, ResultName, ResultDescription,
CAST([233] AS Real) as [ResultColA],
CAST([234] AS Int) as [ResultColB],
CAST([236] AS NVarChar) as [ResultColC],
CAST([237] AS Int) as [ResultColD]
FROM (
SELECT st.*, avt.ResultID as avtID, avt.SomeAttrID, avt.Value
FROM Result_AV avt
JOIN Result st ON avt.ResultID = st.ResultID) as p
PIVOT (
MAX(Value) FOR AttributeID IN ([233], [234], [236], [237])) as pvt
更新:車のメーカーがあるテーブルを持っていて、GMが作った車のすべての属性が必要な場合。私は車の情報を調べ、それを使ってGMのすべての車のメーカーを取得してから、GMが作成したすべての車の情報を取得したいが、情報が動的に生成されているので異なっています。 これは私がいる場所で、このテーブルを動的に生成する必要があります。私はおそらくちょうどWebサービスに呼び出すことができ、動的に生成されたクエリを取得し、ストアドプロシージャまたは関数がそのクエリを実行することができれば不思議です。
更新2:このテーブルを取得した後の次のステップは、車の実際の価格を決定するために、車のすべてのオプション(この場合)を追加する必要があるということです。それが表形式である必要がある理由です。この時点で私はGMによって作られた車を見ていますが、SeaRay製のボートについて別の質問をすることもできます。ボートのテーブルの列が車のものと異なっていても、クエリは同じになります。
私は、動的に生成されたテーブルを返す必要があると思います。なぜこれが必要なのか、いくつかの背景を説明できますか? – RedFilter
データベースのすべてのテーブルを一覧表示するテーブルがあります。だから、私はエンティティ名から始めます。私はそれを使ってテーブル内のカラム名をプライマリ・キーとともに取得します。次に、この段階で、そのエンティティの各列のすべての値を取得したいので、列名が動的に生成されます。 –