gpt4 book ai didi

sql-server - 插入语句在 SQL Server 2005 上失败,但在 2008 R2 或更高版本上运行良好

转载 作者:行者123 更新时间:2023-11-30 23:52:07 25 4
gpt4 key购买 nike

我在循环中有以下 SQL 插入语句,它遍历游标:

SELECT @q_sql = 'INSERT INTO SYS_PARAMETER(parameter_uno, parameter_key, description, parameter_value, comments, created_date, created_user_id, created_user_name, last_modified_user, last_modified_date, module_uno, data_type)
VALUES ('+@sysparam_uno + ','''+@q_parameter_key+''','''','''+b.pairvalue+''','''',
getdate(),''setup'',''setup'',''setup'',getDate(),'''+@q_module_uno+''','''')'
from UTIL_pairkeys a
INNER JOIN UTIL_pairvalues b on a.pairkeyuno = b.pairkeyuno
and b.languno = 1
where a.pairkey=@q_parameter_key

EXEC sp_executesql @q_sql

由于 b.pairvalue 参数的值带有单引号,插入语句在 SQL Server 2005 上失败,但在 SQL Server 2008R2 及更高版本上运行良好。任何人都知道这是为什么?我知道一旦参数值在 varchar 列之间有单引号,插入语句就会失败。但这里有些奇怪。

插入语句示例如下;

INSERT INTO SYS_PARAMETER(parameter_uno,parameter_key,description,parameter_value,comments,created_date,created_user_id,created_user_name,last_modified_user,last_modified_date,module_uno,data_type)
values (269,'application.fs.company','','St John's Foods','',getdate(),'setup','setup','setup',getDate(),'1','')

最佳答案

如果只是单引号的问题,你可以像这样用两个单引号代替它:

replace( b.pairvalue ,'''','''''')

关于sql-server - 插入语句在 SQL Server 2005 上失败,但在 2008 R2 或更高版本上运行良好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32009771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com