2

우리는 항상 특정 유형의 데이터 (bit, varchar (50) 등)를 반환하는 몇 가지 SQL Server 2005 테이블에서 계산 된 열을 사용합니다.SQL/.NET TableAdapters - 계산 된 열을 데이터베이스 또는 데이터 집합에 강력하게 입력하는 방법은 무엇입니까?

이 테이블은 강력한 형식의 데이터 집합 및 테이블 어댑터를 사용하여 .NET 데이터 계층에서 사용되지만 계산 된 열은 특정 형식으로 제한되지 않으므로 (항상 특정 형식을 반환하지만 아무것도 반환 할 수 없음) .NET 강력한 형식의 열은 생성되지 않습니다.

여기에 세 가지 질문이 있습니다. - 계산 된 열은 일반적으로 관련 레코드에 특정 값이 있는지 확인하거나 XPath를 사용하여 관련 XML 문서에서 단일 값을 반환합니다. 계산 된 열은 이에 적합한 도구입니까, 아니면 이러한 관련 데이터를 반환 할 수있는 더 좋은 방법입니까?

  • 내 검색은 아니오라고 말하지만이 열을 데이터베이스 자체에 강력하게 입력 할 수 있습니까?

  • 나 적절한 유형 을 설정하고 (디자이너 데이터베이스는 스키마의 업데이트를 쿼리 때문에) 데이터 집합/TableAdapter에 업데이트를 통해이를 유지할 수 있도록 할 것 비주얼 스튜디오 데이터 집합 디자이너의 내부 해결 방법이 있습니까?

고마워요!

답변

2

이러한 값을 반환하는 데 사용하는 쿼리에서 SQL CAST() 함수를 사용하여 원하는 모든 데이터 형식으로 캐스팅 할 수 있습니다. 나는 .NET이 캐스팅 된 데이터 유형을 인식하고 해당 유형을 데이터 세트에 넣어야한다고 생각합니다.

1

먼저 유형이 있습니다.

두 번째로 SQL Server는 클라이언트가 C API 클라이언트, C# 클라이언트, JDBC 클라이언트 등을 요청할 경우 형식을 클라이언트에 알립니다. 그렇지 않으면 클라이언트가 형식을 올바르게 캐스팅 할 수 없습니다.

셋째, 계산 된 열에 대한 information_schema.columns (또는 syscolumns) 행을 보면 어떤 유형인지 알 수 있습니다.

넷째, CAST 연산자를 사용하여 이러한 열을 실제 유형과 호환되는 모든 유형으로 캐스트 할 수 있습니다.