如何将默认值等于现有列值的列添加到SQL Server表中?

我试过这个T-SQL语句:

ALTER TABLE tablename 
ADD newcolumn type NOT NULL DEFAULT (oldcolumn) 

但它给出了一个错误:

The name "oldcolumn" is not permitted in this context. Valid expressions are constants, constant expressions, and (in some contexts) variables. Column names are not permitted.

推荐答案

试试这个:

ALTER TABLE tablename ADD newcolumn type NOT NULL DEFAULT (0)
Go
Update tablename SET newcolumn = oldcolumn Where newcolumn = 0
Go

Sql相关问答推荐

神秘的日期转换

postgresql插入json不工作

Select 起始参数和截止参数之间的间隔,包括与期间重叠的参数

基于唯一值在Access查询中创建计数器

按分隔符和总和分析字符串

查找表中特定值的上次更新日期

按分类标准检索记录

将一个数组反嵌套到另外两个数组SQL中(Athena/presto)

合并分层表SQL中的第一个非空、变化的空位置

如何用HeidiSQL在Firebird中设置超时?

如何使子查询在UPDATE语句期间获得最新更新

在 PostgreSQL 中使用 ltree 列进行累积

将空 JSON 数组添加到 SQL Server 表列中的 JSON 字符串

根据不同日期标准分配组的逻辑

如何优化仅返回符合条件的三条记录的查询?

批量更改WooCommerce中所有产品的税收状态

添加一列并根据其他列值进行填充

As400 (IBM i) SQL 表 QSYS2.SYSTABLES 上的元数据

有没有一种方法可以将始终遵循序列的单个字段的值组合起来,以创建每个 ID 的所有移动?

SQL Server Where 条件