问个很初级的问题(修改字段长度)

zbdzjx 2017-03-17 03:10:25
刚才在修改一个字段的长度,用SQL语句,就是:ALTER TABLE 表名 ALTER COLUMN 字段名 VARCHAR(500) 。
而在SSMS中手工修改字段长度,在自动生成SQL时,发现却是先建了一个临时表,这个字段的长度是新的值,再将原表数据插入到新表中,删除原表,新表改名成原表。
这两种方式有什么差异?
...全文
572 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ginnnnnnnn 2017-03-18
  • 打赏
  • 举报
回复
界面可以改字段顺序,其实是相当于把表缓存起来重新创建,你看下它生成的语句就知道了。但是如果你的表比较大,分分钟卡死
Tiger_Zhao 2017-03-17
  • 打赏
  • 举报
回复
3.界面方式比较灵活,中间插入字段、调整字段次序等都可以实现,ALTER TABLE 只能在最后添加字段。
开发阶段建议使用界面方式,使用自动绑定显示表格时,列的次序就是想要(调整好)的次序。
卖水果的net 版主 2017-03-17
  • 打赏
  • 举报
回复
界面修改,会把该表上的 TRI、IX、FK、PK 这些都重建一次,如果数据量大,产生大量日志; 但是,这个有一个好处,就是觉得列的顺序别扭,想调整一下,可以在界面上操作; 如果只是想单纯的修改一下字段长度,或增加个字段,还是语句操作更为简单
唐诗三百首 2017-03-17
  • 打赏
  • 举报
回复
差异: 1.界面方式修改将导致表的object_id变更, 语句方式则不变. 测试方法: select type,name,object_id,create_date from sys.objects where name='[表名]' 2.界面方式修改性能较差, CPU / IO值远比语句方式修改时大. 测试方法: 用SQL Profiler工具跟踪2种方式产生的CPU,Reads,Writes,Duration的值. 个人建议用语句方式.
gw6328 2017-03-17
  • 打赏
  • 举报
回复
我这里直接提示需要删除表再创建表,不能修改。 如果用语句应该可以修改

34,590

社区成员

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

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