针对如何将列添加到大型SQLServer表和sql添加列数据从其它表中这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展.net–如何将现有SQLServer存储过程添加到源代码管理?、c#–
针对如何将列添加到大型SQL Server表和sql添加列数据从其它表中这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展.net – 如何将现有SQL Server存储过程添加到源代码管理?、c# – 以编程方式将列添加到SQL Server数据库、SQL Server表中添加新列并添加描述、sql – 将新列添加到大数据库表等相关知识,希望可以帮助到你。
本文目录一览:- 如何将列添加到大型SQL Server表(sql添加列数据从其它表中)
- .net – 如何将现有SQL Server存储过程添加到源代码管理?
- c# – 以编程方式将列添加到SQL Server数据库
- SQL Server表中添加新列并添加描述
- sql – 将新列添加到大数据库表
如何将列添加到大型SQL Server表(sql添加列数据从其它表中)
我在生产中有一个SQL Server表,它具有数百万行,事实证明我需要向其中添加一列。或者,更准确地说,我需要向表所代表的实体添加一个字段。
从句法上讲,这不是问题,如果表没有太多行并且不在生产中,这将很容易。
确实,我所追求的是采取行动。有很多网站,它们的表非常大,而且它们必须不时添加字段。他们如何在没有大量停机的情况下做到这一点?
我应该添加的一件事是,我不希望该列允许空值,这意味着我需要具有默认值。
因此,我要么需要找出如何及时添加具有默认值的列,要么需要找到一种以后可以更新该列,然后将该列设置为不允许为空的方法。
答案1
小编典典ALTER TABLE table1 ADD newcolumn int NULLGO
不应花费那么长的时间…需要很长时间的是在其他列的中间插入列… b / c然后引擎需要创建一个新表并将数据复制到新表中。
.net – 如何将现有SQL Server存储过程添加到源代码管理?
当对一个进行更改时,没有日志,并且很难弄清楚为什么突然失效的东西.
我们最近使用SVN切换到使用正确的版本控制,所以我希望将这些存储过程添加到版本控制中.
我们是.Net商店,我知道存在一个数据库项目类型.这会是一个好方法吗?
或者,我可以将存储过程保存为文本文件并对其进行操作,但我想知道这样做所涉及的令人讨厌的部署步骤.
解决方法
c# – 以编程方式将列添加到SQL Server数据库
第三方应用程序创建表示由用户生成的打印机标签的文件.这些标签文件直接引用ODBC源的字段.表格的每一行代表一个填充标签字段的产品. (因此,在这些文件中直接引用表的列名.)
ASP.NET应用程序允许用户通过添加或编辑表示产品的特定行来创建/更新标签引用的这些字段的数据.
它还允许偶尔添加新字段……它实际上在核心表中创建了一个由标签引用的新列.
我担心的是:我以前从未以编程方式更改现有表的列.现有的应用程序似乎处理这个功能很好,但在我在新的应用程序中盲目地做同样的事情之前,我想知道这样做有什么样的陷阱,如果有的话…并且如果有任何明显的选择.
解决方法
两者的“混合”方法可能很有趣.
将要查询的值存储在专用列中,将其余值保留在XML blob中(MS sql具有很好的功能,甚至可以在XML中查询)或者在KVP包中.就个人而言,我真的不喜欢DB中的KVP,因为你不能再构建特定于应用程序逻辑的indix.
另一种方法是根本不对特定列进行建模.您可以创建通用的“自定义属性”表,例如:Attribute1,Attribute2,Attribute3,Attribute4(用于所需的数据类型等等)然后,您可以将元数据添加到数据库中,以描述AttrX对特定类型的打印机标签的含义.
同样,它实际上取决于您最终如何使用该数据.
SQL Server表中添加新列并添加描述
注: sql server 2005 及以上支持. 版本估计是不支持(工作环境2005,2008).
工作需要,需要向sql Server 现有表中添加新列并添加描述. 从而有个如下存储过程. (先附上存储过程然后解释)
解释:
语句:
作用: 查找表中是否存在指定的列. 如果存在则添加会报错.
ALTER TABLE 语句:
ALTER TABLE 语句用于在已有的表中添加、修改或删除列。
如需在表中添加列,请使用下列语法:
要删除表中的列,请使用下列语法:
要改变表中列的数据类型,请使用下列语法:
属性的增删改:
fn_listextendedproperty: 获取扩展属性,主要判断下属性是否存在如果存在则更新,不存在则添加
sp_updateextendedproperty: 更新字段描述
sp_addextendedproperty : 添加字段描述
sp_dropextendedproperty: 删除字段描述
因为sp_dropextendedproperty上文存储过程没有出现特附上示例:
以上所述是小编给大家介绍的sql Server表中添加新列并添加描述,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小编网站的支持!
sql – 将新列添加到大数据库表
数据库正在生产中,这就是为什么这个数据库必须保持一致的流畅性.
我已经阅读了很多,但是如果这是一个危险的操作,从来没有真正得到答案.
新列为空,默认值为NULL.据了解,如果新列需要默认值,则会有更大的问题.
我真的很欣赏这个问题的一些直截了当的答案.这是否可行?
解决方法
添加一个列,其中NULL是可接受的并且没有默认值,不需要长时间运行的锁来将数据添加到表中.
如果您提供默认值,则sql Server必须去更新每个记录才能将该列新值写入该行.
一般工作原理:
+---------------------+------------------------+-----------------------+ | Column is Nullable? | Default Value Supplied | Result | +---------------------+------------------------+-----------------------+ | Yes | No | Quick Add (caveat) | | Yes | Yes | Long running lock | | No | No | Error | | No | Yes | Long running lock | +---------------------+------------------------+-----------------------+
警告位:
我不记得在我的头顶部,当您添加一列导致使空值位图的大小被扩展时会发生什么.我想说,NULL位图表示当前行中所有列的可空性,但我不能把我的手放在我的心上,并且说这绝对是真的.
编辑 – > @MartinSmith指出,NULL位图只会在行发生变化时展开,非常感谢.但是,正如他还指出,如果行的大小扩展到sql Server 2012的8060字节限制,那么a long running lock may still be required.非常感谢* 2.
第二个警告:
测试它
第三和最后的警告:
不,真的,测试.
今天关于如何将列添加到大型SQL Server表和sql添加列数据从其它表中的讲解已经结束,谢谢您的阅读,如果想了解更多关于.net – 如何将现有SQL Server存储过程添加到源代码管理?、c# – 以编程方式将列添加到SQL Server数据库、SQL Server表中添加新列并添加描述、sql – 将新列添加到大数据库表的相关知识,请在本站搜索。
本文标签: