将主ID列类型从uniqueiIdentifier更改为nvarchar

时间:2015-09-18 08:17:31

标签: sql-server database sql-server-2008 database-design database-schema

我在SQL Server中有一个庞大的数据库,它具有复杂的依赖性,大量的存储过程和复杂的视图。

现在,根据业务需求,我必须将列数据类型从uniqueidentifier更改为nvarchar

如果列是表的主键,我可以将列数据类型更改为nvarchar吗?

如果主键列在另一个表中用作外键,我可以这样做吗?

1 个答案:

答案 0 :(得分:0)

不,你不能那样做。

尝试这样的错误将是

  

ALTER TABLE ALTER COLUMN失败,因为一个或多个对象访问此列。

依赖项是在列上创建的表的主键,以及在引用此列的另一个表上创建的外键。

摘自MSDN -

  1. 在列级别指定的FOREIGN KEY约束只能列出一个引用列。此列必须与定义约束的列具有相同的数据类型。

  2. 在表级指定的FOREIGN KEY约束必须具有与约束列列表中的列数相同的引用列数。每个参考列的数据类型也必须与列列表中的相应列相同。