【发布时间】:2019-06-18 13:53:54
【问题描述】:
T-SQL 环境中的动态字符串处理存在未知错误。 PS:我不会做任何转换。只想创建一个Update语句,稍后再执行
代码:
DROP TABLE IF EXISTS #TEMP
Select 'CRDB_Reporting' tablename,'MagnitudePackage' updatecolumn,'String' updatecolumntype,'''XLFWH''' updatevalue,'NatureOfFundCode' primaryfilter,'String' primaryfiltertype,'''FWH''' primaryfiltervalue,NULL remainingfilter
INTO #TEMP
Select
CASE
WHEN remainingfilter IS NOT NULL THEN
'Update [dbo].[' + tablename +'] Set [' + updatecolumn +'] = ' + updatevalue + ' Where [' + primaryfilter +'] = ' + primaryfiltervalue + ' And ' + remainingfilter
WHEN remainingfilter IS NULL THEN
'Update [dbo].[' + tablename +'] Set [' + updatecolumn +'] = ' + updatevalue + ' Where [' + primaryfilter +'] = ' + primaryfiltervalue + ' And '
END
From #Temp
预期结果
Update [dbo].[CRDB_Reporting] Set [MagnitudePackage] = 'XLFWH' Where [NatureOfFundCode] = 'FWH'
错误信息:
Msg 245, Level 16, State 1, Line 34 转换时转换失败 varchar 值 '更新 [dbo].[CRDB_Reporting] 设置 [MagnitudePackage] = 'XLFWH' 其中 [NatureOfFundCode] = 'FWH' 和 ' 数据类型为 int。
【问题讨论】:
标签: tsql