问题标签 [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.
sql-server - 更改表架构时的错误处理和数据完整性
我们有一些客户拥有大型数据集,在我们的升级过程中,我们需要修改各种表的架构(添加一些列,重命名其他列,偶尔更改数据类型,但这种情况很少见)。
以前我们一直在使用新模式的临时表,然后删除原始表并重命名临时表,但我希望通过使用ALTER table ...
来显着加快速度。
我的问题是我需要考虑哪些数据完整性和错误处理问题?我应该在事务中包含对表的所有更改(如果是,如何?)还是 DBMS 会保证 ALTER 操作的原子性和完整性?
我们已经强烈建议客户在开始升级之前备份他们的数据,因此这应该始终是一个后备选项。
我们需要以 SQLServer 2005 和 Oracle 为目标,但显然如果它们需要不同的方法,我可以添加条件代码。
sql-server - 为什么“更改表切换分区”会静默失败?
我在 SQL Server 2005(Ent,Ed.,32 位,SP2)上有一个分区事实表,我正在为其构建一个分区(事实表是快照类型)。该过程在单独的表中构建数据,应用适当的索引,然后将分区切换到表中。
这在过去有效
表结构相同,命令不会引发错误。如果您删除其中一个索引,则会引发抱怨该错误的错误。
由于某种原因,切换分区的命令不会引发错误,但会静默失败。我不明白为什么会这样。
例如,
运行,SSMS 报告“ Command (s) completed successfully.
”但运行诸如select count (*) from fact.RIAgedDebt
返回 0 行之类的东西。源表中wk.FactRIAgedDebt
仍然有数据。
- 这是一个已知的错误吗?
- 我在做一些明显的错误吗?
- 有没有人见过这种现象?
sql - 添加具有初始(但不是默认)值的新列的最佳方法?
我需要在 MS SQL 2005 数据库中添加一个具有初始值的新列。但是,我不想在此列上自动创建默认约束。在我添加列的时间点,默认/初始值是正确的,但这可能会随着时间而改变。因此,将来对表的访问必须指定一个值而不是接受默认值。
我能想到的最好的是:
对于大型表(100,000 到 1,000,000 条记录),这似乎有点低效。
我已经尝试添加具有默认值的列,然后删除默认约束。但是,我不知道默认约束的名称是什么,并且宁愿不访问 sysobjects 并输入数据库特定的知识。
拜托,一定有更好的方法。
sql - 向现有列添加标识
我需要将表的主键更改为标识列,并且表中已经有很多行。
我有一个脚本来清理 ID 以确保它们从 1 开始是连续的,在我的测试数据库上工作正常。
将列更改为具有标识属性的 SQL 命令是什么?
oracle - 将 LOB 添加到 Oracle 表有什么问题?
我正在尝试通过添加新的 CLOB 列(在 Oracle 10 上)来更改表,但它失败了。给我一个 ORA-01735 错误。问题是我无法通过谷歌搜索找出我的查询有什么特别的问题,所以我想我会在这里问以防万一。
无论如何,我的查询是:
并得到以下错误:
有任何想法吗?
谢谢。
sqlite - 如何在 sqlite 2 数据库表中添加列
如何向现有 sqlite 2 数据库表添加一个附加列,该表具有与之关联的数据和索引。
似乎在 sqlite2 中不可用的 alter table SQL?
mysql - 如何修改 MySQL 表中列的大小?
我创建了一个表并意外地将varchar
长度设置为300
而不是65353
. 我该如何解决?
一个例子将不胜感激。
sql - SQL Alter Table 然后修改值
我有一个正在处理的 SQL 脚本,当我创建(或编辑)列然后尝试修改该新列时遇到了问题。
例如:
现在我认为 BEGIN/END 块会将这两个项目分开,但我收到一个错误“无效的列名'ColumnThree'”。当我尝试运行它时。为什么?不应该第一个 BEGIN/END 设置 ColumnThree 和更多的点,如果该列名不存在,IF(EXISTS 应该保护 UPDATE 语句不被运行。
做这样的事情的正确方法是什么?(我似乎有几个类似的场景需要这样做)。
linq-to-sql - 是否可以使用 Linq 更改数据库表?
我正在尝试以编程方式在 access 数据库内的表中删除一列,但发现自己无法这样做!有可能吗?这让我觉得我对 linq to sql不能做的事情没有任何明确的想法。有任何想法吗?
sql-server - 更改巨表PK列数据类型
现在我们已经用完了int
PK 列(这是一个IDENTITY
)的容量,我想这样做bigint
,但简单ALTER TABLE
似乎无法处理那么大的表。所以我的问题是:如何在保持实际值不变的情况下更改 PK 列的类型,我是否还需要更改引用表?