SQLServer 有物理主外键关系的表在主表改变主键索引时的测试

--先试删除外键,避免后面如删除主表异常
IF OBJECT_ID('FK_MainId') IS NOT NULL
BEGIN
	alter table Sub_Table drop constraint FK_MainId
END
--删除主表再建
IF OBJECT_ID('Main_Table') IS NOT NULL
BEGIN
	DROP TABLE Main_Table
END
GO
CREATE TABLE Main_Table(
	MainId INT,
	MainName NVARCHAR(10),
	CONSTRAINT PK_Main_Table PRIMARY KEY(
		MainId ASC	
	)	
)
GO
--删除子表再建
IF OBJECT_ID('Sub_Table') IS NOT NULL
BEGIN
	DROP TABLE Sub_Table
END
GO
CREATE TABLE Sub_Table(
	SubId INT,
	MainId INT,
	MainName NVARCHAR(10),
	CONSTRAINT PK_Sub_Table PRIMARY KEY(
		SubId ASC	
	)
	,CONSTRAINT FK_MainId FOREIGN KEY (MainId) REFERENCES Main_Table( MainId )
)
GO
--插入主表数据
INSERT INTO Main_Table (MainId,MainName) VALUES(1,'小明')
INSERT INTO Main_Table (MainId,MainName) VALUES(2,'小华')
--插入子表数据
INSERT INTO Sub_Table (SubId,MainId,MainName) VALUES(10,1,'吃饭')
INSERT INTO Sub_Table (SubId,MainId,MainName) VALUES(11,1,'睡觉')
INSERT INTO Sub_Table (SubId,MainId,MainName) VALUES(12,1,'洗衣服')
INSERT INTO Sub_Table (SubId,MainId,MainName) VALUES(20,2,'吃好饭')
INSERT INTO Sub_Table (SubId,MainId,MainName) VALUES(21,2,'睡好觉')
INSERT INTO Sub_Table (SubId,MainId,MainName) VALUES(22,2,'洗好衣服')

--输入数据
SELECT * FROM Main_Table mt
SELECT * FROM Sub_Table st

--修改主表主键索引
EXEC sp_rename 'PK_Main_Table','PK_Main_Table2'

--修改列名类型测试
ALTER TABLE Main_Table ALTER COLUMN MainId BIGINT 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值