sql server 2000 如何改变 default属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server 2000 如何改变 default属性相关的知识,希望对你有一定的参考价值。
ALTER TABLE LACRIMOSA ALTER COLUMN CHEN SET DEFAULT 'CHEN' 我的语句是这么写的,为什么会提示:
服务器: 消息 156,级别 15,状态 1,行 1
在关键字 'SET' 附近有语法错误。
求教 。在建立表是时候是可以添加的 ,但是我想改变default值,就说我有问题
alter table 表名 drop constraint [已有默认约束名称]
增加默认值约束语句:
alter table 表名 add constraint [默认约束名称] default 默认值 for 字段名 参考技术B ALTER TABLE 表名 add DEFAULT ( '修改后的默认值 ') for 字段名 WITH VALUES
如果之前有了约束的话,应该先删除。追问
如何删除表中列的默认default值 ALTER TABLE 表 ALTER COLUNM 列名 DROP DEFAULT 这样好像打进去是错的
追答ALTER TABLE dbo.t1
DROP CONSTRAINT DF_t1_fb
ALTER TABLE dbo.t1 ADD CONSTRAINT
DF_t1_fb DEFAULT (''b'') FOR fb
DF_t1_fb是自己随意取的
我如何修改我的 Sql server 2008 r2 FK 的父表
【中文标题】我如何修改我的 Sql server 2008 r2 FK 的父表【英文标题】:How i can modify the Parent table for my Sql server 2008 r2 FK 【发布时间】:2014-04-17 13:50:35 【问题描述】:我的表中有一个 FK,但我想修改 FK 的父表。那么有没有改变命令可以实现这一点?或者我需要删除 FK 并创建一个新的? 谢谢
【问题讨论】:
修改的本质是什么? 你的意思是改变列配置还是列数据? 我想改变FK所指的父表,我不是在谈论数据,我想要改变FK所指的父表 我想要列配置... 您到底想在父表中修改什么?在我看来,你需要一个alter
声明。
【参考方案1】:
将此添加到您的 PK 中,它会自动为您更新所有 FK:
ON UPDATE CASCADE
完整详情,请阅读this article。
EDIT根据您的评论,如果您要更改PK数据类型,则取决于更改:
如果旧类型可以隐式转换为新类型而不会造成任何损失:-
先更改PK类型。
将 FK 类型更改为相同。
-
首先打破关系(即删除 FK 限制/索引)。
转换 PK。如果需要修改数据,请将旧值和新值都保存在临时表中。
转换 FK。如果在上一步中更改了 PK 数据,请使用临时表中的映射值更新 FK。
再次创建关系(即创建 FK 限制/索引)。
修改数据类型,使用ALTER
命令,语法为:
ALTER TABLE table_name
ALTER COLUMN column_name datatype
例子:
ALTER TABLE table_name
ALTER COLUMN id NUMBER(10,2);
ALTER TABLE table_name
ALTER COLUMN id VARCHAR(20);
更多详情,请阅读this article。
【讨论】:
我想更改我的 FK 所指的父表?我不想更改数据..【参考方案2】:看起来您正在寻找alter
声明,但由于您没有确切提及您要修改的内容;我假设您想更改列数据类型的大小。你可以这样做(一个例子;假设你想将大小从 10 更改为 15)
alter table sample3
alter column name varchar(15)
编辑:
在这种情况下,这就是你应该做的。您需要删除现有约束并重新创建约束以指向TableC
alter table TableA
drop constraint your_FK_constraint_name
alter table TableA
add constraint constraint_name
FOREIGN KEY (column_name) references TableC(some other column name)
一个例子:
alter table sample2
drop constraint FK__sample2__realnam__09DE7BCC
alter table sample2
add constraint FK__sample2__realnam
FOREIGN KEY (realname) references sample1(name)
【讨论】:
@johnG,是的,这就是应该做的事情,而且只能按照这个顺序。就像我在我编辑的答案中发布的一样。另外,如果有帮助,请不要忘记将其标记为答案。【参考方案3】:基于此评论,“现在我在 TableA 中的当前 FK 引用另一个表主键 TableB。但我需要修改我当前的 FK 以引用 tableC 而不是 tableB ...这就是我需要的(修改我的 FK 的父表)– "
父表是TableB。无需对该表执行任何操作。
在 TableA 上,您必须:
-
删除现有的外键约束。
根据需要进行更新,以使适用列中的所有值在 TableC 中具有匹配值。
添加新的外键约束。
按这个顺序。
编辑从这里开始
Here 是语法的链接,
【讨论】:
以上是关于sql server 2000 如何改变 default属性的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 2008 如何配置链接服务器访问 SQL Server2000?