我刚刚在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
或者有更好的方法来验证这些事情吗?
另外,抱歉数据库没有正常规范化,我建议不要由同事进行规范化,以便以后进行数据分析。
答案 0 :(得分:0)
无论您想要更改列的类型,都可以选择CAST - 选择它以确保一切正常:
SELECT CAST(Column_Name as tinyint), *
FROM [dbo].[Simulations]
如果有int值,则会引发异常。
如果您尝试缩短字符串(例如将varchar(1000)更改为varchar(100)),则会显示数据将被截断的消息。