0

我正在尝试运行INSERT查询,但它要求我转换varchar为 null。这是代码:

INSERT Runtime.dbo.History (DateTime, TagName, vValue)
VALUES ('2015-09-10 09:00:00', 'ErrorComment', 'Error1')

错误信息:

将数据类型 nvarchar 转换为 (null) 时出错。

问题出在vValue柱子上。

column vValue(nvarchar, null) 

它在数据库中的外观:

在此处输入图像描述

里面的值vValue是由我正在使用的程序放置的。我只是想手动插入数据库。

上个帖子发错专栏了,请见谅。

4

3 回答 3

1

在联系 Wonderware 支持后,我发现 vValue 列设计不支持 INSERT。这是一个字符串值,更新应该通过 StringHistory 表执行。

于 2015-10-29T08:18:49.743 回答
0

数据库中列值的类型是什么?

如果它是浮点数,您应该插入一个数字,而不是字符串。

将“error1”转换为 FLOAT 是无意义的。Float 是一个数字示例:1.15, 12.00, 150.15 当您尝试将“Error1”转换为浮点数时,他试图将文本“error1”转换为数字,但他不能,这是逻辑。

您应该在列中插入一个数字。

于 2015-10-15T11:35:55.843 回答
0

我想我可以帮助你解决你的问题,因为我有一个不错的测试环境可以试验。

Runtime.dbo.History不是可以直接与之交互的表,它是一个View. 在我们的例子中,视图定义为:

select * from [INSQL].[Runtime].dbo.History

...我相信这意味着您正在查看的历史数据来自 Historian 平面文件存储本身,即 Wonderware 专有系统。如果您扩展 SQL Server Management Studio 的

Server Objects -> Linked Servers -> INSQL

...并在那里玩数据,但我真的不推荐它。

话虽如此,您出于什么原因需要插入标签历史记录?对于您需要的目的,可能还有其他解决方法。

于 2015-10-16T13:47:06.940 回答