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值,就说我有问题

参考技术A 删除原有默认值约束语句,如果不知道现有约束的名称,可以在查询分析器里该表下面的约束里看到:
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 server2000如何将数字转换为日期时间

SQL Server 2000:如何退出存储过程?

SQL Server 2008 如何配置链接服务器访问 SQL Server2000?

如何摆脱 SQL Server 2000 中的扩展表属性?

如何使用 SQL-Server 2000 查询层次结构信息?

SQL Server 2008 如何配置链接服务器访问 SQL Server2000?