尝试为我拥有的视图创建索引。问题是这不是模式绑定视图,因此使用alter命令进行了更改。我遇到的下一个问题是它必须是一个唯一的聚簇索引。所以我认为没有问题,但是当我的colum不包含重复的键值时,它仍然抱怨有一个。在错误中我看到: 它说:“重复键值是(2012年12月7日上午10:02)。”
在我的专栏中,其存储为: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
答案 0 :(得分:1)
您的结果是书签和用户的笛卡儿产品:
FROM dbo.Bookmarks,dbo.Users
相当于:
FROM dbo.Bookmarks
CROSS JOIN dbo.Users
即。每个用户都会复制每个书签,因为没有标准链接这两个表。因此,除非您的用户表中只有一条记录,否则BM_CreateDate
在视图中不能是唯一的,即使它在源表中是唯一的。