我在SQL Server中有一个庞大的数据库,它具有复杂的依赖性,大量的存储过程和复杂的视图。
现在,根据业务需求,我必须将列数据类型从uniqueidentifier
更改为nvarchar
。
如果列是表的主键,我可以将列数据类型更改为nvarchar
吗?
如果主键列在另一个表中用作外键,我可以这样做吗?
答案 0 :(得分:0)
不,你不能那样做。
尝试这样的错误将是
ALTER TABLE ALTER COLUMN失败,因为一个或多个对象访问此列。
依赖项是在列上创建的表的主键,以及在引用此列的另一个表上创建的外键。
摘自MSDN
-
在列级别指定的FOREIGN KEY约束只能列出一个引用列。此列必须与定义约束的列具有相同的数据类型。
在表级指定的FOREIGN KEY约束必须具有与约束列列表中的列数相同的引用列数。每个参考列的数据类型也必须与列列表中的相应列相同。