问题标签 [alter-table]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
981 浏览

sql-server - 更改表架构时的错误处理和数据完整性

我们有一些客户拥有大型数据集,在我们的升级过程中,我们需要修改各种表的架构(添加一些列,重命名其他列,偶尔更改数据类型,但这种情况很少见)。

以前我们一直在使用新模式的临时表,然后删除原始表并重命名临时表,但我希望通过使用ALTER table ...来显着加快速度。

我的问题是我需要考虑哪些数据完整性和错误处理问题?我应该在事务中包含对表的所有更改(如果是,如何?)还是 DBMS 会保证 ALTER 操作的原子性和完整性?

我们已经强烈建议客户在开始升级之前备份他们的数据,因此这应该始终是一个后备选项。

我们需要以 SQLServer 2005 和 Oracle 为目标,但显然如果它们需要不同的方法,我可以添加条件代码。

0 投票
1 回答
583 浏览

sql-server - 为什么“更改表切换分区”会静默失败?

我在 SQL Server 2005(Ent,Ed.,32 位,SP2)上有一个分区事实表,我正在为其构建一个分区(事实表是快照类型)。该过程在单独的表中构建数据,应用适当的索引,然后将分区切换到表中。

  1. 这在过去有效

  2. 表结构相同,命令不会引发错误。如果您删除其中一个索引,则会引发抱怨该错误的错误。

由于某种原因,切换分区的命令不会引发错误,但会静默失败。我不明白为什么会这样。

例如,

运行,SSMS 报告“ Command (s) completed successfully.”但运行诸如select count (*) from fact.RIAgedDebt返回 0 行之类的东西。源表中wk.FactRIAgedDebt仍然有数据。

  • 这是一个已知的错误吗?
  • 我在做一些明显的错误吗?
  • 有没有人见过这种现象?
0 投票
5 回答
36621 浏览

sql - 添加具有初始(但不是默认)值的新列的最佳方法?

我需要在 MS SQL 2005 数据库中添加一个具有初始值的新列。但是,我不想在此列上自动创建默认约束。在我添加列的时间点,默认/初始值是正确的,但这可能会随着时间而改变。因此,将来对表的访问必须指定一个值而不是接受默认值。

我能想到的最好的是:

对于大型表(100,000 到 1,000,000 条记录),这似乎有点低效。

我已经尝试添加具有默认值的列,然后删除默认约束。但是,我不知道默认约束的名称是什么,并且宁愿不访问 sysobjects 并输入数据库特定的知识。

拜托,一定有更好的方法。

0 投票
19 回答
1117606 浏览

sql - 向现有列添加标识

我需要将表的主键更改为标识列,并且表中已经有很多行。

我有一个脚本来清理 ID 以确保它们从 1 开始是连续的,在我的测试数据库上工作正常。

将列更改为具有标识属性的 SQL 命令是什么?

0 投票
3 回答
5891 浏览

oracle - 将 LOB 添加到 Oracle 表有什么问题?

我正在尝试通过添加新的 CLOB 列(在 Oracle 10 上)来更改表,但它失败了给我一个 ORA-01735 错误。问题是我无法通过谷歌搜索找出我的查询有什么特别的问题,所以我想我会在这里问以防万一。

无论如何,我的查询是:

并得到以下错误:

有任何想法吗?

谢谢。

0 投票
4 回答
4414 浏览

sqlite - 如何在 sqlite 2 数据库表中添加列

如何向现有 sqlite 2 数据库表添加一个附加列,该表具有与之关联的数据和索引。

似乎在 sqlite2 中不可用的 alter table SQL?

0 投票
2 回答
294061 浏览

mysql - 如何修改 MySQL 表中列的大小?

我创建了一个表并意外地将varchar长度设置为300而不是65353. 我该如何解决?

一个例子将不胜感激。

0 投票
1 回答
7536 浏览

sql - SQL Alter Table 然后修改值

我有一个正在处理的 SQL 脚本,当我创建(或编辑)列然后尝试修改该新列时遇到了问题。

例如:

现在我认为 BEGIN/END 块会将这两个项目分开,但我收到一个错误“无效的列名'ColumnThree'”。当我尝试运行它时。为什么?不应该第一个 BEGIN/END 设置 ColumnThree 和更多的点,如果该列名不存在,IF(EXISTS 应该保护 UPDATE 语句不被运行。

做这样的事情的正确方法是什么?(我似乎有几个类似的场景需要这样做)。

0 投票
2 回答
2799 浏览

linq-to-sql - 是否可以使用 Linq 更改数据库表?

我正在尝试以编程方式在 access 数据库内的表中删除一列,但发现自己无法这样做!有可能吗?这让我觉得我对 linq to sql不能做的事情没有任何明确的想法。有任何想法吗?

0 投票
4 回答
1695 浏览

sql-server - 更改巨表PK列数据类型

现在我们已经用完了intPK 列(这是一个IDENTITY)的容量,我想这样做bigint,但简单ALTER TABLE似乎无法处理那么大的表。所以我的问题是:如何在保持实际值不变的情况下更改 PK 列的类型,我是否还需要更改引用表?