问题标签 [alter-column]

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 投票
1 回答
63 浏览

sql-server - 将 PK 从 VARCHAR 更改为 INT

我有一张 PK 为 varchar(20) 的表。我在想这是拖慢查询速度的原因(尚未检查但有很多关于 varchars 作为 PK 的阅读)。

问题是,我想将该列替换为 INT(身份),但它具有引用完整性约束。

是否有一些简单的任务可以完成,因为如果没有,我会一一完成,让 CASCADE 更新完成其余的更新。

PS:使用 MS SQL Server 2008

0 投票
1 回答
470 浏览

sql-server - SQL Server ALTER COLUMN 和依赖项

varchar我想增加table A. 这个表有很多依赖,比如更新这个列的存储过程。如果我增加而不是减少 this 的大小,varchar它会破坏任何依赖关系吗?是否会导致更新此列的存储过程失败并在调用时出错?

0 投票
2 回答
1904 浏览

sql-server - MSSQL:一般来说,alter column not null

在 Microsoft SQL Server 2008 R2 中,我想将一个可为空的列更改为不为空。显然,我可以通过重述数据类型来做到这一点,如

例如,如果列 tc 是 int 数据类型。但是一般情况下,如果不重新说明现有数据类型呢?我正在寻找一些等价的

现有数据类型保留在原位,并且仅关闭可空性。

背景

我对我的数据库进行了审计,发现许多情况下,列被指定为可为空,但实际上没有出现空值。我想收紧架构以禁止这些列中的空值。手动将 DDL 写入每个“更改列”很容易出错,因为我可能会弄错数据类型。我可以使用模式转储程序自动生成代码,该程序输出每列的现有数据类型,但这也有风险,如果转储程序不知道最新的数据类型并输出其他内容(例如,假设它不知道 datetime2 而是写出 datetime)。

SQL 服务器已经知道列类型是什么,所以肯定有办法告诉它保留它并关闭可空性。

如果除了找到现有的数据类型将其放入 DDL 之外真的没有办法做到这一点,也许您可​​以推荐一个合适的工具来使用?我从 Sybase 时代就知道 dbschema.pl,但可能有更现代的东西,或者一些众所周知的 SQL 片段,可以从模式视图中打印出必要的语句。

0 投票
1 回答
234 浏览

sql - SQL Server ALTER COLUMN NOT NULL 无效

table的设计者SOME_TABLE没有定义主键,更糟糕的是,他们将可以定义主键的列之一设置为NULLable(其他都可以)。

的数据SOME_TABLE.PrinterPos不包含任何NULL值。

我正在编写一个升级脚本以应用于约 50 个数据库。

以下代码失败:

我收到消息

无法对表“SOME_TABLE”中的可为空列定义 PRIMARY KEY 约束。

看起来第一个命令被完全忽略了。虽然没有消息表明这一点。

  1. 为了把它放在它自己的批次中,我尝试执行第一个命令使用sp_executesql无效。
  2. 如果我在 SQL Server Management Studio 中执行第一个命令,然后执行第二个命令,则它执行正常。

我需要让这个改变完全自动化。我怎样才能让它通过脚本工作?

0 投票
1 回答
4130 浏览

sql-server - 当索引依赖于该列而不重新创建索引时,如何将列从 null 更改为非 null?

我有一个Column声明为的列,NULL DEFAULT(GETUTCDATE())并且有一个包含此列的非聚集索引。我想将此列更改为NOT NULL DEFAULT(GETUTCDATE()),当我运行ALTER TABLE ALTER COLUMN语句时,SQL Azure 服务说它无法更改该列,因为有一个取决于该列的索引。

那是一个生产数据库,该表包含大约一千万条记录。所以我宁愿不删除并重新创建索引,因为这会减慢数据库的速度(尤其是创建索引可能需要几分钟)。

如何在不重新创建索引的情况下更改列?

0 投票
3 回答
1705 浏览

sql-server - 动态 T-SQL - 将列定义更改为字段的最大长度

我正在尝试动态创建代码以将列定义更改为字段的最大长度。

请注意,数据库的内容不会改变。

这是我到目前为止所拥有的,但我不能单独执行最大长度查询来获取一个数字。我哪里错了?

问候。

0 投票
2 回答
924 浏览

sql - 修改列时出现“ORA-00900:无效的 SQL 语句”错误

我在 SQL 开发人员中有这段代码:

我收到粗体字错误。它说

ORA-00900: 无效的 SQL 语句。

有人可以帮助我我做错了什么吗?

0 投票
1 回答
58 浏览

oracle - 当 Oracle 中 NOT NULL 中的列时,如何将 COLUMN 更改为 NULL

ALTER COLUMN当Oracle中NOT NULL中的列用句子或脚本时,我怎样才能为NULL?

0 投票
0 回答
676 浏览

alter-table - ALTER TABLE 不起作用

我正在尝试更改表item中的列数据类型。现在它只有 0(现在是 int)。当我运行它时会发生什么?我尝试使用int num = cmd.ExecuteNonQuery()但没有工作,它出现了错误。使用此代码,我看不到更改。我发现 LONGBLOB 是在数据库中保存图像的特殊数据类型。这是我的代码:

GetCommand 方法是这样的:

0 投票
1 回答
304 浏览

mysql - 使用 liquibase 修改数据类型时相同的数据类型

我想知道 liquibase modifydatatype 升级是否默认运行任何先决条件?例如,如果我以下列方式更改数据类型为整数的列“A”:

它会在执行之前检查列类型是否与以前相同?

文档中没有任何内容: http ://www.liquibase.org/documentation/changes/modify_data_type.html