跪求INDEX SQL2008的使用方式方法

James__z 2017-10-16 11:03:50
百度了,没有找到合理的使用语法,向大牛们请教!!
...全文
829 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 版主 2017-10-16
  • 打赏
  • 举报
回复
引用 4 楼 adminiss 的回复:
[quote=引用 2 楼 yenange 的回复:] 对于自己不熟悉的SQL, 可以通过让SSMS帮你生成:
ALTER TABLE [dbo].[Persons] ADD UNIQUE NONCLUSTERED ( [ID_P] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] GO 这就是用你的方式,调出来的脚本!要这些写么? [/quote] 你这弄成了 ADD 索引。 你到底是要添加索引还是删除索引?
James__z 2017-10-16
  • 打赏
  • 举报
回复
引用 2 楼 yenange 的回复:
对于自己不熟悉的SQL, 可以通过让SSMS帮你生成:
ALTER TABLE [dbo].[Persons] ADD UNIQUE NONCLUSTERED ( [ID_P] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] GO 这就是用你的方式,调出来的脚本!要这些写么?
James__z 2017-10-16
  • 打赏
  • 举报
回复
引用 1 楼 sinat_28984567 的回复:
试试这样: DROP INDEX ID_P ON persons
这还是跟之前一样的报错啊!
吉普赛的歌 版主 2017-10-16
  • 打赏
  • 举报
回复
对于自己不熟悉的SQL, 可以通过让SSMS帮你生成:
二月十六 版主 2017-10-16
  • 打赏
  • 举报
回复
试试这样:
DROP INDEX ID_P ON persons
吉普赛的歌 版主 2017-10-16
  • 打赏
  • 举报
回复
http://blog.csdn.net/kk185800961/article/details/48108309
吉普赛的歌 版主 2017-10-16
  • 打赏
  • 举报
回复
没事就结贴吧
吉普赛的歌 版主 2017-10-16
  • 打赏
  • 举报
回复
--你上面的那些做法, 没有给定唯一约束的名称,后面要删除会比较麻烦, 建议如下:
USE tempdb
GO
IF OBJECT_ID('t') IS NOT NULL DROP TABLE t
GO
CREATE TABLE t (id INT PRIMARY KEY,id2 INT)
GO
--删除约束
IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N't') AND name = N'UQ_t_id2')
BEGIN
	ALTER TABLE t DROP CONSTRAINT UQ_t_id2
END
GO
--增加约束
IF NOT EXISTS (SELECT * FROM sys.sysconstraints AS s WHERE s.constid=OBJECT_ID('UQ_t_id2'))
BEGIN
	ALTER TABLE t ADD CONSTRAINT UQ_t_id2 UNIQUE (id2)
END
James__z 2017-10-16
  • 打赏
  • 举报
回复
引用 20 楼 yenange 的回复:
没事就结贴吧
约束和索引的区别?我明明建的是约束却在索引中增加!!!1
James__z 2017-10-16
  • 打赏
  • 举报
回复
引用 20 楼 yenange 的回复:
没事就结贴吧
你的头像是你么?
James__z 2017-10-16
  • 打赏
  • 举报
回复
吉普赛的歌 版主 2017-10-16
  • 打赏
  • 举报
回复
引用 13 楼 adminiss 的回复:
IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[Persons]') AND name = N'UQ__Persons__B87EA51D5DFE0F9E') ALTER TABLE [dbo].[Persons] DROP CONSTRAINT [UQ__Persons__B87EA51D5DFE0F9E] GO [/code]
完全正确, 结贴吧
James__z 2017-10-16
  • 打赏
  • 举报
回复
引用 11 楼 yenange 的回复:
[quote=引用 7 楼 adminiss 的回复:] [quote=引用 5 楼 yenange 的回复:] [quote=引用 4 楼 adminiss 的回复:] [quote=引用 2 楼 yenange 的回复:] 对于自己不熟悉的SQL, 可以通过让SSMS帮你生成:
ALTER TABLE [dbo].[Persons] ADD UNIQUE NONCLUSTERED ( [ID_P] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] GO 这就是用你的方式,调出来的脚本!要这些写么? [/quote] 你这弄成了 ADD 索引。 你到底是要添加索引还是删除索引? [/quote] drop 啊 [/quote] 你选择的菜单应该是添加索引的脚本。 [/quote]
USE [K3]
GO


IF  EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[Persons]') AND name = N'UQ__Persons__B87EA51D5DFE0F9E')
ALTER TABLE [dbo].[Persons] DROP CONSTRAINT [UQ__Persons__B87EA51D5DFE0F9E]
GO
James__z 2017-10-16
  • 打赏
  • 举报
回复
引用 10 楼 sinat_28984567 的回复:
[quote=引用 9 楼 adminiss 的回复:] [quote=引用 8 楼 adminiss 的回复:] [quote=引用 6 楼 sinat_28984567 的回复:] [quote=引用 3 楼 adminiss 的回复:] [quote=引用 1 楼 sinat_28984567 的回复:] 试试这样: DROP INDEX ID_P ON persons
这还是跟之前一样的报错啊![/quote] 不要前边的alter table[/quote] OK 可以了,为什么啊![/quote] 还是不行啊!这是什么意思???[/quote] 不能删除两次,已经删除了就不存在了[/quote] 还是不对,我刚刚新建的,用给的语句还是报同样的错误!!!
吉普赛的歌 版主 2017-10-16
  • 打赏
  • 举报
回复
引用 7 楼 adminiss 的回复:
[quote=引用 5 楼 yenange 的回复:] [quote=引用 4 楼 adminiss 的回复:] [quote=引用 2 楼 yenange 的回复:] 对于自己不熟悉的SQL, 可以通过让SSMS帮你生成:
ALTER TABLE [dbo].[Persons] ADD UNIQUE NONCLUSTERED ( [ID_P] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] GO 这就是用你的方式,调出来的脚本!要这些写么? [/quote] 你这弄成了 ADD 索引。 你到底是要添加索引还是删除索引? [/quote] drop 啊 [/quote] 你选择的菜单应该是添加索引的脚本。
James__z 2017-10-16
  • 打赏
  • 举报
回复
引用 8 楼 adminiss 的回复:
[quote=引用 6 楼 sinat_28984567 的回复:] [quote=引用 3 楼 adminiss 的回复:] [quote=引用 1 楼 sinat_28984567 的回复:] 试试这样: DROP INDEX ID_P ON persons
这还是跟之前一样的报错啊![/quote] 不要前边的alter table[/quote] OK 可以了,为什么啊![/quote] 还是不行啊!这是什么意思???
二月十六 版主 2017-10-16
  • 打赏
  • 举报
回复
。。。。你开始写的drop index 我以为是索引 后边这个变成UNIQUE约束了……
James__z 2017-10-16
  • 打赏
  • 举报
回复
引用 6 楼 sinat_28984567 的回复:
[quote=引用 3 楼 adminiss 的回复:] [quote=引用 1 楼 sinat_28984567 的回复:] 试试这样: DROP INDEX ID_P ON persons
这还是跟之前一样的报错啊![/quote] 不要前边的alter table[/quote] OK 可以了,为什么啊!
James__z 2017-10-16
  • 打赏
  • 举报
回复
引用 5 楼 yenange 的回复:
[quote=引用 4 楼 adminiss 的回复:] [quote=引用 2 楼 yenange 的回复:] 对于自己不熟悉的SQL, 可以通过让SSMS帮你生成:
ALTER TABLE [dbo].[Persons] ADD UNIQUE NONCLUSTERED ( [ID_P] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] GO 这就是用你的方式,调出来的脚本!要这些写么? [/quote] 你这弄成了 ADD 索引。 你到底是要添加索引还是删除索引? [/quote] drop 啊
James__z 2017-10-16
  • 打赏
  • 举报
回复
引用 15 楼 sinat_28984567 的回复:
[quote=引用 12 楼 adminiss 的回复:] [quote=引用 10 楼 sinat_28984567 的回复:] [quote=引用 9 楼 adminiss 的回复:] [quote=引用 8 楼 adminiss 的回复:] [quote=引用 6 楼 sinat_28984567 的回复:] [quote=引用 3 楼 adminiss 的回复:] [quote=引用 1 楼 sinat_28984567 的回复:] 试试这样: DROP INDEX ID_P ON persons
这还是跟之前一样的报错啊![/quote] 不要前边的alter table[/quote] OK 可以了,为什么啊![/quote] 还是不行啊!这是什么意思???[/quote] 不能删除两次,已经删除了就不存在了[/quote] 还是不对,我刚刚新建的,用给的语句还是报同样的错误!!![/quote] 新建的语句,以及删除的语句发上来看看[/quote]
ALTER TABLE Persons 
ADD UNIQUE(ID_P)

DROP INDEX ID_P ON persons
加载更多回复(3)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧