我正在尝试运行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
内的值由我正在使用的程序放置。我只是想手动插入数据库。
上一篇文章的列错了,我道歉。
答案 0 :(得分:1)
在联系Wonderware支持后,我发现vValue列不支持INSERT设计。它是一个字符串值,更新应该通过StringHistory表执行。
答案 1 :(得分:0)
数据库中列值的类型是什么?
如果它浮动,你应该插入一个数字,而不是字符串。
Cast" error1" FLOAT是没有意义的。 Float是一个例子:1.15,12.00,150.15 当你尝试CAST" Error1"为了漂浮,他试图改变文本" error1"数字,他不能,这是逻辑。
您应该在列中插入一个数字。
答案 2 :(得分:0)
我认为我可以帮助您解决问题,因为我有一个不错的测试环境可以试验。
Runtime.dbo.History
不是您可以直接与之互动的表格,而是View
。在我们的例子中,视图定义为:
select * from [INSQL].[Runtime].dbo.History
...我相信这意味着你正在查看的历史数据来自Historian平面文件存储本身,一个Wonderware专有系统。如果扩展SQL Server Management Studio的
,可能会看到一些成功Server Objects -> Linked Servers -> INSQL
...并在那里播放数据,但我真的不推荐它。
有了这个说,你需要插入标签历史的原因是什么?可能还有其他可行的解决方法。