【发布时间】:2014-06-18 01:49:33
【问题描述】:
我需要将数据库中数据类型为 char(255) 的所有列的数据类型更改为 nvarchar(255)。为此,我需要删除 P/F 键,然后重新创建它们。但是在数据类型更改时,我会丢失非空信息。
有些列可以为空,有些则不能。这就是问题所在。
我该如何解决?
编辑:
当我删除 P/F 键时,我尝试成功更改数据类型。然后,在重新创建键时,它说不能在该字段上设置键,因为它可以为空。
然后我尝试用 try/catch 来做:
尝试添加键,如果没有,将数据类型更改为不为空,然后再次尝试添加键。
它可以工作,但现在会引发大量异常。我认为这项工作已经完成,但我不确定,因为我的数据库有大约 100 个表,如果它们都正常,则无法检查所有表。
那么这里还有其他方法吗?
【问题讨论】:
-
谷歌和肘部油脂?也许你应该从你尝试过的开始。
-
您在哪里丢失了非空信息?您的主键列现在不可能为空。您的外键可能是可空的,但如果是,您在丢失非空信息方面没有问题。那么.. 究竟是哪里出了问题?
-
已编辑。我用谷歌搜索但没有成功。
标签: java sql sql-server nullable notnull