Sql 更改列类型并保留数据
我有一个sql server 2005数据库,其中一列是int。数据库中充满了数据,因此我不能丢失任何数据 我需要将该列的值从int改为varchar(50),但是该列在许多存储过程中使用,在这些存储过程中,它们被分配给变量intSql 更改列类型并保留数据,sql,sql-server-2005,Sql,Sql Server 2005,我有一个sql server 2005数据库,其中一列是int。数据库中充满了数据,因此我不能丢失任何数据 我需要将该列的值从int改为varchar(50),但是该列在许多存储过程中使用,在这些存储过程中,它们被分配给变量int 我希望此列现在存储varchar,那么我如何才能做到这一点?为什么不使用不同的列来存储字符串,而不是在一个列中混合两种明显不同的数据类型?@AaronBertrand,因为有一个应用程序依赖于该列,而我对此并不熟悉。我知道此列中存储的所有数据的最大长度为3个字符。那么
我希望此列现在存储varchar,那么我如何才能做到这一点?为什么不使用不同的列来存储字符串,而不是在一个列中混合两种明显不同的数据类型?@AaronBertrand,因为有一个应用程序依赖于该列,而我对此并不熟悉。我知道此列中存储的所有数据的最大长度为3个字符。那么,应用程序中究竟发生了什么变化,现在需要存储字符串,而以前只存储int?将表is easy int更改为varchar很容易。程序,好吧,你已经吃饱了。为什么是int,为什么是现在。事件,如果数据很容易转换为int,那么在数据库中留下这样一个洞将是一个非常糟糕的主意。你对这个专栏有索引吗?int和varchar50的性能有点不同。需要更改的原因是我们从另一个源获取新数据,并且它的格式不同。我不知道以前为什么是int,但我想是因为他们认为我们只能得到int