Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 更改列类型并保留数据_Sql_Sql Server 2005 - Fatal编程技术网

Sql 更改列类型并保留数据

Sql 更改列类型并保留数据,sql,sql-server-2005,Sql,Sql Server 2005,我有一个sql server 2005数据库,其中一列是int。数据库中充满了数据,因此我不能丢失任何数据 我需要将该列的值从int改为varchar(50),但是该列在许多存储过程中使用,在这些存储过程中,它们被分配给变量int 我希望此列现在存储varchar,那么我如何才能做到这一点?为什么不使用不同的列来存储字符串,而不是在一个列中混合两种明显不同的数据类型?@AaronBertrand,因为有一个应用程序依赖于该列,而我对此并不熟悉。我知道此列中存储的所有数据的最大长度为3个字符。那么

我有一个sql server 2005数据库,其中一列是int。数据库中充满了数据,因此我不能丢失任何数据

我需要将该列的值从int改为varchar(50),但是该列在许多存储过程中使用,在这些存储过程中,它们被分配给变量int


我希望此列现在存储varchar,那么我如何才能做到这一点?

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