SQLServerの照合には、カラム名が正しい場合でなければならないということですか?そして、それに対処する方法

StackOverflow https://stackoverflow.com/questions/496628

質問

は、SQL Serverの(2000または2005)には、その識別子名(テーブル、列、など)が正しい場合にする必要がありますので、データベースやサーバー照合順序を設定することも可能でしょうか?もしそうなら、それはすべて大文字と小文字が区別照合の真実であるか、それは別の設定ですか? (私は常に、大文字と小文字の区別がないオブジェクトの名前に、データへの適用を考えてきました)。

その保存されprocsのとクエリが一貫したケースで書かれていなかった場合は、

おそらくこれは、アプリケーションを破るでしょうか?すべてのクエリは、このようなデータベース接続の照合を設定するなど、正しいケースを使用することを確認しなくても、これに対処する方法はありますか?

私はおそらく一貫性なくそれにSQLコードをケースに入れた既存のアプリケーションを持っていることの観点からこれを探しています、と私は別の照合順序を持つデータベースに対してそれを実行できるようにしたいと思っています。どのような設定は、私は必要があるだろうか、私はアプリケーションをデータベース/サーバーの照合順序のどのセットを使用することができませんでしたか?

役に立ちましたか?

解決

の照合は、クエリでは大文字と小文字を区別するかどうかを決定するものです。だからあなたのスキーマが複数の環境に対して動作することを保証する唯一の方法は、あなたのクエリは大文字と小文字を区別することです。あなたのクエリが一貫していない場合は、お使いの照合は、それ以外の場合は動作しません大文字と小文字を区別しなければなりません。

http://msdn.microsoft.com/ EN-US /ライブラリ/ aa174903(SQL.80).aspxの

もう一つ注意すべきは、あなたが特定の照合を使用してSQL Server環境を設定したら、あなたはNEW SQL Serverインスタンスを作成せずにそれを変更できないことです。だから、大文字小文字を区別しないが、通常は移動するための方法です。そして、クエリの一貫性を持つように努力しています。

照合が、それは、データとメタデータの両方に適用される設定されたら、

、私は信じています。

他のヒント

照合順序は、SQL Serverの以前のバージョンに設定されているが、それらが作成されると2005年以降では、あなたは、オブジェクトによってそれを変更することができます。

データベースのデフォルトの照合は、データベース内のオブジェクトがクエリで大文字と小文字を区別方法で処理されているか否かを判断する - これは、すべてのオブジェクト名に適用されます。テーブル、コラムなど

アプリケーションコードは大文字と小文字を区別しない照合データベースから来ている場合は、オブジェクトがmisreferencedされている場合、

は、大文字と小文字が区別照合データベース上で実行しない場合があります(あなたはステートメントを実行したり、ストアドプロシージャを作成しようとしたとき、あなたはメッセージになるだろう、またはあなたは、動的SQL、かなりの量を持っていない限り、保存されたインプロセスアーキテクチャでは、あなたが)かなり迅速にこれらすべてをキャッチします。

は、あなたのコードが実行されている場合でも、個々の列は、データベースと異なる照合順序を設定することができますので、それは異なる照合して、あなたのコードは、(例えば、GROUP BYは異なった動作)予期しない動作をすることが常に可能だということを、覚えておいてください。

あなたは各オブジェクトの照合を設定し、同様にデータベースやサーバのデフォルトを設定することができます。

それに対処するには?あなたはここに基準を実施する必要があります。異なる人々が異なる場合と書くと、簡単に自分が巻き込まことができます。

照合は、データに適用されますので、「ボブ」!=「ボブ」

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top