我在sql server 2008 r2中删除并创建索引时遇到问题。当我在删除索引后创建索引时,索引已经存在。如果我搜索索引表,我认为它不存在
获取以下错误消息
Msg 1913,Level 16,State 1,Line 40操作失败,因为a 已有名称为“IX_PartiesIpoData_companyId”的索引或统计信息 存在于表'CoreReferenceStaging.dbo.PartiesIpoData'。
尝试以下
IF EXISTS(SELECT * FROM sys.indexes ind INNER JOIN sys.index_columns ic ON ind.object_id = ic.object_id and ind.index_id = ic.index_id
where ind.name = 'IX_PartiesIpoData_companyId')
DROP INDEX IX_PartiesIpoData_companyId ON PartiesIpoData
CREATE NONCLUSTERED INDEX IX_PartiesIpoData_companyId on CoreReferenceStaging.dbo.PartiesIpoData(companyId)
这个
IF EXISTS(SELECT *
FROM sys.indexes
WHERE name='IX_PartiesIpoData_companyId' AND object_id = OBJECT_ID('CoreReferenceStaging.dbo.PartiesIpoData'))
DROP INDEX IX_PartiesIpoData_companyId ON PartiesIpoData
CREATE NONCLUSTERED INDEX IX_PartiesIpoData_companyId on CoreReferenceStaging.dbo.PartiesIpoData(companyId)
这是索引表的样子
索引表
答案 0 :(得分:0)
只需按SQL Server查询搜索现有名称索引:
dx = B.X - A.X
dy = B.Y - A.Y
if Width * Abs(dy) < Height * Abs(dx) then
x = Sign(dx) * Width / 2
y = dy * x / dx
else
y = Sign(dy) * Height / 2
x = dx * y / dy
如果已存在同名索引,则将其删除。