日期:2014-05-18  浏览次数:20863 次

sql 存储过程中带有转义字符的超长字符串
declare @num1 varchar(max)
set @num1="{\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fnil\fcharset134 \'cb\'ce\'cc\'e5;}{\f1\fswiss\fcharset134 \'cb\'ce\'cc\'e5;}}\viewkind4\uc1\pard\lang2052\f0\fs18\'b9\'e3\'ce\'f7\'cf\'d6\'d3\'d0________\'b4\'a6\'b9\'fa\'bc\'d2\'bc\'b6\'d6\'d8\'b5\'e3\'ce\'c4\'ce\'ef\'b1\'a3\'bb\'a4\'b5\'a5\'ce\'bb00\f1\par}"

INSERT INTO [Movies].[dbo].[Table_1]
  ([Content])
  VALUES
  (@num1)

num1赋值的那样,带有转义字符的超长字符串在存储过程中怎么处理,还要能够保持内容不改变,即里面的字符不能被替换

------解决方案--------------------
提前处理一下不可以么
------解决方案--------------------
写代码没必要这么钻牛角尖吧。
------解决方案--------------------
"'"+@num1+"'",这样试试
------解决方案--------------------
你不用看那些转义字符串,没有用,直接全部删掉,将下面的字符串拷到里面就ok了

user testdatabase//(数据库名称)
go
create procedure testname//(存储过程名称)

@test1 int, @test2 nvarchar(50)//(参数,当然楼主可以自定义个数及类型)
as

insert into testtable values(@test1,@test2)
return

然后执行一下,提示命令已完成,存储过程就创建好了