2012-01-02 2 views
0

次のSQL Serverのデータ型はどのようなものですか?珍しいSQL Serverのデータ型を実際に使用するのは何ですか?

実際の例を教えてください。代わりに、画像

  • smallinttinyint代わりにintbit
  • varchar(50)varchar(max)代わりにtext
  • sql_variant
  • uniqueidentifier
  • 012の

    1. binary(50)varbinary(50)
    +1

    を保存するには、MSSQLで、さまざまな種類のは、Microsoftの哲学が原因である "いくつかの馬鹿がそれを望んでいるならば、我々は彼にそれを販売します"貧しい人を独占的なプラットフォームに結びつけている。 – Philip

    +4

    @Philip:あなたの偏見を明確にするために、あなたは「反MS」、「反揮発性」または「非標準非準拠」ですか? – gbn

    +0

    @ gbn:hehe、私は「anti-non-standards-compliance」を選択しますが、私は私を正確に「anti」と呼んでいません。標準が十分な選択肢を提供しない場合が常にありますが、ソリューションは自家製のソリューションを導入する代わりに標準を拡張することです。悲しいことに、それは通常、別の方法で動作しますが、それでもカスタム拡張が、例えば、次のようにマークされていることに同意することは可能です。いくつかのベンダーが '-moz- *'や '-webkit- *'のように独自の名前空間を占有するCSS拡張があります。インターフェイスの一部を削除することをお勧めします。 – Philip

    答えて

    6
    1. image is deprecated and also very limited(MSDN)
    2. あなたは残りの部分とのビットを比較することはできません。 TINYINT/SMALLINT:https://dba.stackexchange.com/a/4979/630
    3. テキストは非推奨と非常に限られている(点1として)
    4. 多言語サポートつの列で:https://dba.stackexchange.com/a/10009/630
    5. マージレプリケーション:https://stackoverflow.com/a/1164694/27535
    +0

    「4」もEAVシナリオでよく使用されます。 –

    +1

    EAV ==エンティティ属性値 – anonymous

    3

    1)

    画像の代わりにvarbinarymax

    imageは廃止されましたので、あなたは

    2)

    SMALLINT、代わりにint型のTINYINT将来のSQL Serverのバージョンとの互換性を確保するためにvarbinary(max)を使用する必要があると

    は、これらの4つの異なるタイプのビットさまざまな範囲の数値が格納されます。それはあなたがその列に保存したいデータに依存:

    • あなたが唯一の0と1が必要な場合は、あなたが255から0よりも多くを必要としない場合は、bit
    • を使用し、あなたが必要な場合はtinyint
    • を使用しますあなたがより多くを必要とする場合、あなたはすべてのためにintを使用することができます。もちろん、int

    を使用smallint

  • を使用し、32768 -32768以上ありませんが、目の無「より大きい」型の場合も、行ごとにより多くのスペースが必要です。したがって、0と1の値だけが必要な場合は、int列を使用することは絶対に意味がありません。なぜなら、データベースが不必要に大きくなるからです。

    3)

    VARCHAR(50)との代わりに)1として

    同じテキストのvarcharmax:textは、あなたが将来の互換性を確保するためにvarchar(50)またはvarchar(max)を使用する必要があるので、非推奨(とされますテキストが常に50文字に収まる場合は、とにかくtextまたはvarchar(max)を使用することは意味がありません。

    UNIQUEIDENTIFIER

    5)

    GUIDs

  • +0

    議論してください(4)。 – anonymous

    +0

    @Saqib:私はそれについて何も知らないので、私の答えに 'sql_variant'は言及していませんでした(正直なところ、あなたの質問を読む前に聞いたことはありません)。しかし、[gbnの回答](http://stackoverflow.com/a/8702375/6884)のリンクは私にとってはかなりよく見えます。 –

    関連する問題