【发布时间】:2017-11-22 18:30:43
【问题描述】:
我正在尝试对 SQL Server 2008 R2 中的表进行更新,但该列仅写入 8000 个字符。
该列的数据类型设置为text,但我已经尝试更改为varchar(max),但没有成功。
我也用过cast('variable' as text)和cast('variable' as varchar(max)),同样不成功。
当通过 SQL 控制台进行相同的更新(我在屏幕上做了一个 response.write,复制并粘贴它)或手动插入超过 8000 个字符时,它可以工作(通过 Microsoft Visual Studio)。
sql_Up = "UPDATE ABVC_Eventos SET titulo_eve = '" & Strip(Evento) & "', cod_sup_eve = '" & Strip(cod_sup_eve) & "', cod_sup2_eve = '" & Strip(cod_sup2_eve) & "', texto_eve = CAST('" & Strip(texto_eve) & "' AS TEXT), WHERE id_eve = '" & Strip(Cod_Evento) & "'"
set Rs_sqlUp = bco.Execute(sql_Up)
“Strip”功能用于消毒。
【问题讨论】:
-
跟着我重复:我会的。绝不。再次。建造。 SQL。像。那。 - 您必须在任何情况下都使用参数化查询。请看这里了解how to create and use query parameters in ASP Classic。在您重写代码后仍然出现错误,请相应地更新您的问题。
-
@JairoFilho 在这种情况下,您无能为力。对不起。
-
@JairoFilho 您可以更改代码,对吗?它是 ASP,没有什么可以阻止你。所以去修复它。
-
@JairoFilho 没有快速解决方案,首先您必须确保您在连接字符串中使用的提供程序首先可以支持
NVARCHAR(MAX)。见stackoverflow.com/a/3112421/692942。
标签: asp-classic sql-server-2008-r2