微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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,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,MainName) VALUES(11,'睡觉')
INSERT INTO Sub_Table (SubId,MainName) VALUES(12,'洗衣服')
INSERT INTO Sub_Table (SubId,MainName) VALUES(20,2,'吃好饭')
INSERT INTO Sub_Table (SubId,MainName) VALUES(21,'睡好觉')
INSERT INTO Sub_Table (SubId,MainName) VALUES(22,'洗好衣服')

--输入数据
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 


版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐