在SQL Server Express 2014中转换列数据类型时有哪些做法?

时间:2015-10-13 15:55:52

标签: sql-server sql-server-2014-express

我刚刚在SQL Server Express中达到10GB数据库限制,我希望删除不必要的列,并将其他列转换为不太重的数据类型。我有29列,只有50M行。在那29个中,20个是花车,其中只有10个对我非常有用。我可以完全丢弃10个浮点列,但仍然拥有我需要的所有信息。在剩余的6列中,2是bit,2是int(复合键需要),5是int但可能是tinyint。

如何确保在将这5列的数据类型更改为tinyint之前,事情会正确转换? SSMS警告说,当从Design中执行此操作时可能会丢失数据,因此我希望在继续运行Alter Table语句之前确保一切正常。

是否如此简单:

java -jar myApp.jar

或者有更好的方法来验证这些事情吗?

另外,抱歉数据库没有正常规范化,我建议不要由同事进行规范化,以便以后进行数据分析。

1 个答案:

答案 0 :(得分:0)

无论您想要更改列的类型,都可以选择CAST - 选择它以确保一切正常:

SELECT CAST(Column_Name as tinyint), *
FROM [dbo].[Simulations]

如果有int值,则会引发异常。

如果您尝试缩短字符串(例如将varchar(1000)更改为varchar(100)),则会显示数据将被截断的消息。