sql-server - UPDATE [COLUMN] SET NULL WHERE [COLUMN] = '' - 消息 8114,级别 16,状态 5 将数据类型 varchar 转换为数字时出错
问题描述
我在 SQL Server 2016 中有一个临时表,将所有列导入为varchar
.
如果我在 column1 上运行以下UPDATE
语句,则第一次执行时不会出现错误。我在第二次执行时收到以下错误:
消息 8114,级别 16,状态 5,
将数据类型 varchar 转换为数字时出错
UPDATE
在后续语句执行中执行相同的语句以将 column2 上的空白或“”更新为 NULL 时,我没有收到任何错误。
column1 中是否还有其他内容随后会收到我需要删除的错误?
如果我执行 UPDATE 语句并将结果复制到 Column1 的记事本,则没有其他显示。
UPDATE [Database].[dbo].[Table]
SET [Column1] = NULL
WHERE [Column1] = ''
我仍然得到错误。
UPDATE [Database].[dbo].[Table]
SET [Column2] = NULL
WHERE [Column2] = ''
在这里,没有错误。
之后更改数据类型不会产生错误。因此,这不会影响导入另一个表。但我想了解我在UPDATE
陈述中做错了什么:
ALTER TABLE [Database].[dbo].[Column1]
ALTER COLUMN [Column1] DECIMAL(38,2)
ALTER TABLE [Database].[dbo].[Column2]
ALTER COLUMN [Column2] DATETIME
命令成功完成。
解决方案
推荐阅读
- vb.net - 如何在vb中计算两次之间的时间差
- laravel - PHPUnit测试找不到工厂
- swift - 编写谓词以建立具有核心数据关系的计数数组
- amazon-web-services - 如何在 AppSync / Amplify 中过滤非标量类型
- python-3.x - python3 multiprocessing.Pool with maxtasksperchild=1 不会终止
- sql - 具有多个条件和多行的 UPDATE
- php - 如何比较mysql,Laravel循环中的两列值并在第三列中找到对应的值?
- react-native - 如何在 React Native 中从自定义导航器导航到 createBottomTabNavigator?
- r - 合并表:根据连接行的方式对输出进行分类
- python - Python pandas:如何创建一个固定日期的列+另一列中的#天