- 07/24/2017
- 3 minutes to read
-
- c
- r
- M
- i
- M
-
+6
Applies to: SQL Server(すべてのサポートされているバージョン)Azure SQLデータベースAzure SQLマネージインスタンスAzure Synapse Analytics
CHECKSUM
CHECKSUM
を使用します。
Transact-SQL構文規則
構文
CHECKSUM ( * | expression )
注
SQL Server2014以前のTransact-SQL構文を表示するには、以前のバージョンのドキュメントを参照してください。注:この構文は、Azure Synapse AnalyticsのサーバーレスSQLプールではサポートされていません。
引数
*
この引数は、チェックサムの計算がすべてのテーブルの列をカバーすることを指定します。 CHECKSUM
いずれかの列が互換性のないデータ型を持っている場合、エラーを返します。 互換性のないデータ型には、次のものがあります:
- cursor
- image
- ntext
- text
- XML
対応できない別のデータ型はsql_variantで、前述のいずれかのデータ型を基本型としています。
式
互換性のないデータ型を除く任意の型の式。
戻り値の型
int
備考
CHECKSUM
CHECKSUM
CHECKSUM
値の上にインデックスが構築されている場合に生成されます。 これは、列の等価検索に使用できます。
CHECKSUM
CHECKSUM
二つのリストの対応する要素が同じデータ型を持ち、equals(=)演算子を使用して比較したときにそれらの対応する要素が等しい場合、同じ値を返します。 指定された型のNull値は、CHECKSUM
CHECKSUM
HASHBYTES
を使用することを検討してください。 指定されたMD5ハッシュアルゴリズムでは、HASHBYTES
CHECKSUM
CHECKSUM
CHECKSUM(*)
に使用される列の順序は、テーブルまたはビュー定義で指定された列の順序です。 これには計算列が含まれます。p>
CHECKSUM
CHECKSUM
値を返します。
CHECKSUM ()
一意の結果を保証するものではありません。
例
これらの例は、ハッシュインデックスを構築するためにCHECKSUM
の使用を示しています。
ハッシュインデックスを作成するために、最初の例では、インデックスを作成するテーブルに計算されたチェックサム列を追加します。 次に、チェックサム列にインデックスを作成します。
-- Create a checksum index. SET ARITHABORT ON; USE AdventureWorks2012; GO ALTER TABLE Production.Product ADD cs_Pname AS CHECKSUM(Name); GO CREATE INDEX Pname_index ON Production.Product (cs_Pname); GO
この例では、チェックサムインデックスをハッシュインデックスとして使用しています。 これにより、索引付けする列が長い文字列の場合の索引付け速度が向上します。 チェックサムインデックスは、等値検索に使用できます。
/*Use the index in a SELECT query. Add a second search condition to catch stray cases where checksums match, but the values are not the same.*/ SELECT * FROM Production.Product WHERE CHECKSUM(N'Bearing Ball') = cs_Pname AND Name = N'Bearing Ball'; GO
計算列でインデックスを作成すると、チェックサム列が具体化され、ProductName
値への変更はチェックサム列に反映されます。 あるいは、索引付けしたい列に直接索引を作成することもできます。 ただし、長いキー値の場合、通常のインデックスはチェックサムインデックスと同様に機能しません。
See also
CHECKSUM_AGG (Transact-SQL)
HASHBYTES (Transact-SQL)
BINARY_CHECKSUM (Transact-SQL)