我有这个功能在SQL Server中,以取代单引号。
但是,当我插入一个单引号,它抛出上的错误Replace(@strip,''',''))
Create Function [dbo].[fn_stripsingleQuote]
(@strStrip varchar(Max))
returns varchar
as
begin
declare @CleanString varchar(Max)
SET @var=(Replace(@strip,'',''))
return @var
end
Answer 1:
您需要如下加倍你的单引号:
REPLACE(@strip, '''', '')
Answer 2:
尝试REPLACE(@strip,'''','')
SQL
使用两个引号代表一个字符串中。
Answer 3:
如果你真的必须完全去掉单引号,你可以这样做:
Replace(@strip, '''', '')
但是,通常你会'与‘’代替,这将会使SQL Server的幸福查询数据库时。 与任何的伎俩内置SQL函数(如更换)是他们太需要你加倍的单引号。
因此,要在代码中,你应该这样做'与‘’取代:
Replace(@strip, '''', '''''')
当然...在某些情况下,你可不必完全做到这一点,如果你在查询数据库时使用的参数。 说你从.NET应用程序查询数据库,那么你应该使用的SqlParameter类养活的SqlCommand参数查询而这一切的单引号的企业将采取的自动处理。 这通常是作为SQL参数的首选方法也将有助于防止SQL注入攻击。
Answer 4:
貌似你试图复制QUOTENAME功能。 这种内置的功能,可用于添加分隔符和正确转义字符串内分隔符和识别单'
,双"
引号作为分隔符,以及括号[
和]
。
Answer 5:
尝试用单引号逃逸的单引号:
Replace(@strip, '''', '')
Answer 6:
你可以使用CHAR(39)
insert into my_table values('hi, my name'+char(39)+'s tim.')
Answer 7:
从用户输入(单引号的划分/置换/ scaping 输入环卫 ),具有SQL语句到达数据库之前完成。
Answer 8:
我跑进这将适用于这里一个奇怪的反常现象。 使用谷歌API和获取XML格式的答复,这是无法转换,因为单引号的XML数据类型。
更换(@Strip, '' '', '')
是行不通的,因为单引号是ASCII字符146而不是39.所以我用:
更换(@Strip,CHAR(146), '')
这也适用于常规的单引号字符(39)和其他特殊字符。
Answer 9:
如果与另一个单引号逃逸的单引号是不是为你工作(就像它没有为我最近REPLACE()查询之一),您可以在查询之前使用SET QUOTED_IDENTIFIER OFF,再经过SET QUOTED_IDENTIFIER ON。
例如
SET QUOTED_IDENTIFIER OFF;
UPDATE TABLE SET NAME = REPLACE(NAME, "'S", "S");
SET QUOTED_IDENTIFIER OFF;
Answer 10:
除了需要逃跑报价(使用双引号),你也搞不清楚变量的名字:您正在使用的,而不是@CleanString和@strStrip @var和@strip,...
Answer 11:
我认为这是为最短的SQL语句:
CREATE FUNCTION [dbo].[fn_stripsingleQuote] (@strStrip varchar(Max))
RETURNS varchar(Max)
AS
BEGIN
RETURN (Replace(@strStrip ,'''',''))
END
我希望这有帮助!
Answer 12:
选择替换(colname的, '' '', '')AS colname的FROM。[DBO] [DB名称]
文章来源: Replace single quotes in SQL Server