0

私が持っているビューのインデックスを作成しようとしています。問題は、これがスキーマにバインドされたビューではなかったため、alter コマンドで変更したことです。私が抱えている次の問題は、それが一意のクラスター化インデックスでなければならないということです。だから私は問題ないと思ったが、私のコラムには重複したキー値が含まれていないのに、まだ1つあると不平を言っている. エラーで私が見たのは、次のとおりです。

私の列では、次のように保存されています:2012-12-07 10:02:58.710

したがって、彼は粒度を下げるため、キー値の重複について不平を言います...私が使用したコマンドは次のとおりです。

dbo.View_BookmarksWithCreatorName (BM_CreateDate) で UNIQUE CLUSTERED INDEX testIndex を作成します。

探してみましたが、なかなか見つかりませんでした。インデックスを作成するときに、フォーマットが変更されず、列に格納されているとおりに取得されるようにするにはどうすればよいですか?

編集

これはスキーマ境界のない既存のビューだったので、ALTER コマンドを使用しました。

ALTER VIEW dbo.View_BookmarksWithCreatorName WITH SCHEMABINDING 

AS

SELECT BM_Key,BM_ID, BM_LastUpdate, BM_Caption, BM_Comment, BM_CreateDate, BM_DateTime, BM_Duration, BM_Type, BM_Value, BM_CreatorUserKey, BM_SourceID, BM_Category
FROM dbo.Bookmarks,dbo.Users 
4

1 に答える 1

1

結果は、ブックマークとユーザーのデカルト積です。

FROM    dbo.Bookmarks,dbo.Users 

以下と同等です。

FROM    dbo.Bookmarks
        CROSS JOIN dbo.Users

つまり、2 つのテーブルをリンクする基準がないため、すべてのブックマークがすべてのユーザーに対して複製されます。したがって、ユーザー テーブルにレコードが 1 つしかない場合を除きBM_CreateDate、ソース テーブルで一意であっても、ビューで一意にすることはできません。

于 2013-11-04T13:47:12.690 に答える