0
サードパーティ製品に属するSQL Server 2008 R2データベースのビュー内のフィールドの長さを取得しようとしています。 [私は直接テーブルにアクセスすることはできませんし、私はビューの定義にアクセスする必要はありませんので、この列がどのように派生しているか、テーブルを照会するかわかりません。これ以下のクエリ -SQL Server 2008 R2 Len関数は、値(ビューから)に関係なく固定値を返します
Select Len(Col1) from MyView
は、常にデータ長に関係なくすべての行で32を返します。
だから私はこれらを試してみました -
Select Len(Ltrim(Rtrim(Col1))) , Len(Convert(Varchar,Col1)) , Len(Convert(Varchar(16),Col1)) from MyView
それはすべての行に対して32,30,16を返しています。誰もがこの行動を認識していますか?私は他の場所からコラムを派生させているかもしれないと思うが、この行動は私には意味がない[明らかなものが分からない限り]
'SELECT SQL_VARIANT_PROPERTY(のCol1、 'BaseType')何、MyView' FROM SQL_VARIANT_PROPERTY(のCol1、 'のMaxLengthは')を返しますか? –
こんにちは@Nick.McDermaid、それはVarchar、32を返すです。それが役に立てば幸い。 – Dinesh
あなたの記述に基づいて、私はすべての32文字がフィールドで使用されていると仮定することができます。どのような 'datalength'値を取得していますか?私はこれがデータを分析するより良いクエリであることを示唆しています: 'Select Col1'、['+ Col1 +'] '、LEN(Col1)、LEN(RTrim(LTrim(Col1)))、DATALENGTH(Col1)FROM MyView' –