SQL Server怎样用sql语句修改一个表中主键字段(它同时又是另一个表的外键及主键)的字段类型?
比如(数据库student):表S有一字段Sno,是表S的主键,int类型,notnull表Sc有一字段Sno,是表Sc的主键及外键(被参照表是S,被参照列是Sno),i...
比如(数据库student):
表S有一字段Sno,是表S的主键,int类型,not null
表Sc有一字段Sno,是表Sc的主键及外键(被参照表是S,被参照列是Sno),int类型,not null
现在想修改表S的字段Sno字段类型为char(10),应该怎样修改啊?
我试了下面的代码,但是提示有错误:
alter table S add Sno1 char(10) null;
set identity_insert S on;
update S set Sno1=Sno;
set identity_insert S off;
alter table S drop constraint PK_S;
alter table S drop column Sno;
exec sp_rename 'S.Sno1','Sno';
alter table S alter column Sno char(10) not null;
alter table S add constraint PK_S primary key(Sno);
第三行提示错误:对象名'S'无效,列名 'Sno1' 无效。
//update S set Sno1=Sno;
应该怎样修改呢?求代码...万分感谢 展开
表S有一字段Sno,是表S的主键,int类型,not null
表Sc有一字段Sno,是表Sc的主键及外键(被参照表是S,被参照列是Sno),int类型,not null
现在想修改表S的字段Sno字段类型为char(10),应该怎样修改啊?
我试了下面的代码,但是提示有错误:
alter table S add Sno1 char(10) null;
set identity_insert S on;
update S set Sno1=Sno;
set identity_insert S off;
alter table S drop constraint PK_S;
alter table S drop column Sno;
exec sp_rename 'S.Sno1','Sno';
alter table S alter column Sno char(10) not null;
alter table S add constraint PK_S primary key(Sno);
第三行提示错误:对象名'S'无效,列名 'Sno1' 无效。
//update S set Sno1=Sno;
应该怎样修改呢?求代码...万分感谢 展开
2个回答
展开全部
要修改主键和外键的话需要先指定主键和外键的名称,以后修改时要用到。
这是的主键和外键为:
修改的sql语句:
--修改主键的名称PK_myTest为PK_myTest22
alter table myTest drop constraint PK_myTest
alter table myTest add constraint PK_myTest22 primary key(aa)
--修改外键的名称fk_myTest为fk_myTest22
alter table myTest drop constraint fk_myTest
alter table myTest add constraint fk_myTest22 foreign key(bb) references test!
这是的主键和外键为:
修改的sql语句:
--修改主键的名称PK_myTest为PK_myTest22
alter table myTest drop constraint PK_myTest
alter table myTest add constraint PK_myTest22 primary key(aa)
--修改外键的名称fk_myTest为fk_myTest22
alter table myTest drop constraint fk_myTest
alter table myTest add constraint fk_myTest22 foreign key(bb) references test!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询