参数的问题

yasuzhanbo 2010-02-26 09:56:36

update qiangfa_com_f.classinfo set bigclass = replace(bigclass,substring(bigclass,charindex('<',bigclass),(len(bigclass)-charindex('<',bigclass)+1)),null)

这一个运行没问题但

@p1 nvarchar(30)
declare @p2 nvarchar(30)
declare @sql nvarchar(300)
set @p1='classinfo'
set @p2='bigclass'
set @sql='update qiangfa_com_f.'+@p1+' set '+@p2+' = replace('+@p2+',substring('+@p2+',charindex("<",'+@p2+'),(len('+@p2+')-charindex("<",'+@p2+')+1)),"")'
exec sp_ExecuteSql @sql

就提示 不能使用空白的对象或列名.如果必要请使用一个空格
另外如果我把最后那个''改成一个具体的值 又提示'<'无效
有没高手回答一下这两个问题如何解决的???急
...全文
68 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yasuzhanbo 2010-02-26
  • 打赏
  • 举报
回复
谢谢了,高手们好快啊!
yasuzhanbo 2010-02-26
  • 打赏
  • 举报
回复
谢谢了,高手们好快啊!
SQL77 2010-02-26
  • 打赏
  • 举报
回复
引用 5 楼 yasuzhanbo 的回复:
对了还有个问题是  当提示"不能使用空白的对象或列名"时我尝试把两个引号换成了null也是不行要出问题的,把整个字段搞成null了,就是第一段代码那个
所以应该是一共三个问题
SELECT 1 AS ' '
SELECT 1 AS ''
yasuzhanbo 2010-02-26
  • 打赏
  • 举报
回复
对了还有个问题是 当提示"不能使用空白的对象或列名"时我尝试把两个引号换成了null也是不行要出问题的,把整个字段搞成null了,就是第一段代码那个
所以应该是一共三个问题
SQL77 2010-02-26
  • 打赏
  • 举报
回复
declare @p1 nvarchar(30)
declare @p2 nvarchar(30)
declare @sql nvarchar(3000)
set @p1='classinfo'
set @p2='bigclass'
set @sql='update qiangfa_com_f.'+@p1+' set '+@p2+' = replace('+@p2+',substring('+@p2+',charindex(''<'','+@p2+'),(len('+@p2+')-charindex(''<'','+@p2+')+1)),'''')'

PRINT @SQL

update qiangfa_com_f.classinfo set bigclass = replace(bigclass,substring(bigclass,charindex('<',bigclass),(len(bigclass)-charindex('<',bigclass)+1)),'')
?
-狙击手- 2010-02-26
  • 打赏
  • 举报
回复
set @sql='update qiangfa_com_f.'+@p1+' set '+@p2+' = replace('+@p2+',substring('+@p2+',charindex(''<'','+@p2+'),(len('+@p2+')-charindex(''<'','+@p2+')+1)),'''')'
SQL77 2010-02-26
  • 打赏
  • 举报
回复
SELECT '''<'''

----
'<'

(所影响的行数为 1 行)
SQL77 2010-02-26
  • 打赏
  • 举报
回复
charindex(''<'',

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧