sql >> データベース >  >> RDS >> Sqlserver

T-SQL宣言されたテーブル変数の2つの列に設定してインデックスを付ける方法は?

    できます 次のように非クラスター化インデックスを作成します。

    DECLARE @t TABLE ( PK INT IDENTITY(1, 1) PRIMARY KEY CLUSTERED, Col1 INT, Col2 INT, UNIQUE (Col1, Col2, PK))   

    その意図が Col1, Col2 である場合 PK を削除する 列リストから。

    額面通りに見えますが、(PK に列が追加されているように見えます) ) インデックス構造は、Col1、Col2 だけに一意でないインデックスを作成するのと同じになります。 #temp

    CREATE TABLE #T ( PK INT IDENTITY(1, 1) PRIMARY KEY CLUSTERED, Col1 INT, Col2 INT) /*とにかくキーの末尾に PK を追加*/ CREATE NONCLUSTERED INDEX ix ON #T(Col1 、Col2)  

    一意ではない非クラスター化インデックスの場合、SQL Server は常に CI キーを暗黙的に NCI キーに追加します。これは明示的に示しているだけです。

    Kalen Delaney 詳細を参照してください。非クラスター化インデックス キー



    1. Androidを使用してsqliteで行数を取得するにはどうすればよいですか?

    2. MySQLの2つのテーブルでクエリを選択します

    3. アノテーション付きのmysqlでmybatisを使用してインサートのIDを返す方法

    4. 最大値のみを含むsql/mysqlフィルター