ビューがスキーマにバインドされているかどうかの違いは何ですか?IsSchemaBoundビューの設定はSQL Serverでは何ですか?
答えて
ビューがスキーマにバインドされている場合、そのスキーマが変更できないことを意味します。実際にはそうしないようにしています。
スキーマバインディングでは、ビューのインデックスを作成することもできます。インデックスを適用するときに静的スキーマの重要性を確認できます。
スキーマバインディングはデータベース内でのみ実行できます。ビューを別のデータベースまたは別のサーバーにスキーマバインドすることはできません。これは完全にデータの完全性のためです。そのデータベースまたはサーバーへのアクセスは必ずしも保証されているわけではないため、スキーマの変更をすべて防止することはできません。
さらに、スキーマにバインドされている表を削除することはできません。これは明らかにそのスキーマを泥沼にしてしまうので、避けられます。
私は「スキーマ」と言っていますが、私はテーブルデザインを意味します。これには、列とそのデータ型が含まれます。スキーマ・バインド表の列をint
からbigint
に変更することはできません。列の名前をid
からtblID
に変更することもできません。この防止は、ビューの完全性を維持するためのものです。
スキーマにバインドされていないビューをインデックスに登録することはできません。
スキーマバインドビューは、スキーマ依存性チェーンの一部です。
スキーマバインドビューで参照されるテーブルを削除または変更することはできませんが、プレーンビューで行うことはできます(参照時にランタイムエラーが発生する)。
The main benefit of SCHEMA BINDING is to avoid any accidental drop or change of an object that is referenced by other objects
偉大Itzikベン・ガンによってMicrosoft® SQL Server ® 2012 T-SQL Fundamentals int型WITH SCHEMABINDINGオプションの説明、およびデヤンSarka、Itzikベン・ガン、そしてより多くの著者によってExam 70-461: Querying Microsoft SQL Server 2012でもあります。あなたはWITH SCHEMABINDINGオプションを使用して作成されたオブジェクトからオブジェクトまたは列を削除しようとすると、ここで
は例です:例えば、それを変更しようとするよりも、
は、WITH SCHEMABINDINGオプションを使用して単純なビューを作成します。
をALTER TABLE Table DROP COLUMN Column1;
次のエラー得られます:オブジェクト
メッセージ5074、レベル16、状態1、行1 'をSomeObjectの' 列 '列1' に依存しています。 メッセージレベル4922、レベル16、状態9、行1 ALTER TABLE DROP COLUMN 1つ以上のオブジェクトがこの列にアクセスしたため、Column1が失敗しました。
SCHEMABINDINGオプションを持たないビューでは、この変更が許可されますが、ドロップされたオブジェクトまたは列を持つオブジェクトをクエリすると、実行時にエラーが発生する可能性があります。
SCHEMABINDINGオプションには、SELECT *構文をサポートしていないため、いくつかの設定があり、修飾名(2つの名前の規則)を使用する必要があります。
希望すると便利です。
- 1. 設定ファイル(ここではredis-server)の「デフォルト」は何ですか
- 2. SQL ServerでNoncountとは何ですか?
- 3. SQL Serverのユーザーセッションとは何ですか?
- 4. Sql Serverのブックマークルックアップとは何ですか?
- 5. SQL Server Profiler以外のSQL Serverプロファイルとは何ですか?
- 6. SQL Serverモジュールとは何ですか?
- 7. SQL Server 2008:サニティチェックとは何ですか?
- 8. このSQL Serverビューを作成する際のエラーは何ですか?
- 9. データベースのSQL Serverで "ホワイトスペース"とは何か
- 10. SQL ServerのID列は何ですか? SQL ServerのIDの種類は何ですか?
- 11. SQL Server 2016でSQL Server Integration Servicesサーバーを使用するとは何ですか?
- 12. SQLのSQL Server ProfilerのNtUsername変数は何ですか?
- 13. SQL ServerのT-SQLエラー処理のベストプラクティスは何ですか?
- 14. SQL AzureとSQL Serverの違いは何ですか?
- 15. SQL ServerでLucene.Netを設定する
- 16. PowershellでSQL Server Facetsを設定する
- 17. SQL Serverのストアドプロシージャでdatetimeオプションのパラメータを設定するには?
- 18. 一部のSQL ServerプロファイラSQLウィンドウでは、デフォルトの意味は何ですか?
- 19. Sql Server 2005とSql Server 2008の主な違いは何ですか?
- 20. SQL Serverのcase文でデフォルト値を設定する方法は?
- 21. SQL Server:ビューを作成中に言語を設定する
- 22. SQL Server 2008で主キーを設定するためのショートカットとは何ですか?
- 23. SQL Serverでクエリが返すのは何ですか?
- 24. SQL Server:sys.system_internals_partition_columnsビューでleaf_offset列の意味は何ですか?
- 25. SQL SERVERでCOALESCEは何を行うのですか
- 26. SQL Serverでは、日付の表示方法を設定できますか?
- 27. SQL Serverのバージョンコストを決定するためのポイントは何ですか?
- 28. SQL Server 2005ストアドプロシージャからのFTPのベストプラクティスは何ですか?
- 29. SQL Serverファイルの設定
- 30. SQL Serverの日付設定