栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

更改列数据类型时保留SQL索引

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

更改列数据类型时保留SQL索引

您无法使用适当的索引,唯一约束,外键约束或检查约束将数据类型从smalldatetime更改为datetime。您必须先将它们全部删除,然后再更改类型。然后:

alter table T alter column TestDate datetime not null

然后重新创建仍然适用的约束和索引。


生成放置和创建的一些不同方法:

1)如果为所有索引和约束都指定了明确的名称,则安装程序可以在每种环境(开发,测试,用户接受测试,性能测试等,生产环境)中运行静态脚本。

要生成此显式脚本,您可以:a)使用SSMS(或与SQL Server
2000,企业管理器一起)编写create和drop语句的脚本。b)在您的源代码存储库中进行工作,以发现依赖对象的名称和定义,并将适当的静态脚本放在一起。c)尝试运行alter语句。看看它失败了。查找定义并手写放置并创建。(个人而言,这对于编写drop非常有用,而不是那么擅长创建。)

2)如果未为所有索引和约束都指定显式名称,则安装程序将必须在数据字典中查询适当的名称,并使用动态SQL以正确的顺序运行drop,然后再使用alter
column语句和然后,以正确的顺序在alter列之后创建。

如果您知道没有约束,而只有索引,这将变得更加简单。

可能有些工具或库已经知道如何执行此操作。

同样,如果这是一个打包的应用程序,则可能无法确保本地DBA尚未添加索引。

注意:如果存在唯一约束,它将建立一个索引,您将无法使用DROP INDEX删除该索引。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/420208.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号