SQL Server 2008 동적으로 생성 된 테이블을 반환해야하는 상황이 발생하며 열 또한 동적으로 생성됩니다.SQL Server 2008 함수에서 테이블 열 정의를 동적으로 생성하는 방법
모든 항목이 쿼리에 의해 생성되었으므로 하나의 ID로 시작한 다음 열 이름과 유형을 가져 와서 캐스팅을 수행합니다.
마지막 쿼리는 다음과 같습니다. 한 테이블에서 원하는 테이블을 반환하지만이 비슷한 쿼리를 사용하면 여러 테이블을 반환 할 수 있습니다.
이것은 현재 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이 만든 모든 자동차 정보를 얻고 싶다. 정보가 동적으로 생성 되었기 때문에 다르다. 그것이 제가이 테이블을 동적으로 생성해야하는 곳입니다. 나는 아마도 웹 서비스에 호출 할 수 있고 동적으로 생성 된 쿼리를 가져온 다음 저장 프로 시저 또는 함수에서 해당 쿼리를 실행할 수 있는지 궁금합니다.
업데이트 2 : 내가이 테이블을 얻은 다음 단계는 차의 실제 가격을 결정하기 위해 차 (이 경우)에 모든 옵션을 추가해야한다는 것입니다. 그래서 그것이 표 형식이어야합니다. 이 시점에서 GM이 만든 자동차를보고 있지만 SeaRay에서 만든 보트에 대해 다른 쿼리를 수행 할 수 있으며 보트의 테이블 열이 자동차와 다른 경우에도 쿼리가 동일하게 작동해야합니다.
나는 동적으로 생성 된 테이블을 반환 할 필요가 있는지 질문합니다. 왜 이것이 필요한지에 대한 배경 지식을 제공 할 수 있습니까? – RedFilter
데이터베이스의 모든 테이블을 나열하는 테이블이 있습니다. 그래서 엔티티 이름으로 시작하는데, 기본 키와 함께 테이블에서 열 이름을 가져 오는 데 사용합니다. 그런 다음이 단계에서 해당 엔티티의 각 열에 모든 값을 가져오고 자하므로 열 이름이 동적으로 생성됩니다. –