2

我在 SQL Server 2008 中有一个像这样的表:

Column      DataType
-----------------------
FID         numeric(18, 0)
Name        varchar(50)
DOB         datetime
MobileNo    numeric(18, 0)
EmailId     varchar(50)
add1        varchar(50)
add2        varchar(50)
add3        varchar(50)
Pincode     numeric(18, 0)
UpdateDate  datetime

在此表中FID应更改为varchar(50)不删除(删除)表..

如何做到这一点,也FID被设置为上表的主键,也被设置为其他表的外键

4

3 回答 3

1

正如我所说 - 我将保留该列FID- 否则,您将在整个数据模型中产生连锁反应,这真的不是您想要做的。

您可以做的是:创建一个新的单独列,其中包含“hgiher ups”非常渴望的新前缀,并将其与FID值连接起来 - 但它是一个单独的列,您不需要更改任何参考资料。

ALTER TABLE dbo.YourTable 
ADD FID2 AS 'MU' + CAST(FID AS VARCHAR(20)) PERSISTED

有了这个,您将获得一个VARCHAR名为的键入新列FID2,该列将具有诸如 ..... 之类的值MU1-MU2自动,无需更改,无需混乱的表重新创建和数据复制......它只是工作!

于 2013-09-10T05:21:42.573 回答
0
Right click table -> Design -> Change the numeric(18, 0) to varchar(50) -> Save

它将要求确认,因为从一种数据类型更改为另一种会删除某些精度值。

最佳做法是保持主键和外键的唯一编号。但是您也可以选择唯一的代码值,它们是varchar

还有一件事,更改主键字段数据类型也会自动更改其他表中所有关系外键字段的数据类型。

于 2013-09-10T05:13:34.657 回答
0

Tools->Options->designers->(Unmark)Prevent saving changes that require table recreation

于 2013-10-22T05:42:03.857 回答