aca*_*dia 45 sql-server error-handling replace
我在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
Run Code Online (Sandbox Code Playgroud)
Dav*_*res 100
您需要将单引号加倍,如下所示:
REPLACE(@strip, '''', '')
Run Code Online (Sandbox Code Playgroud)
Ste*_*ham 18
如果你真的必须完全删除单引号,你可以这样做:
Replace(@strip, '''', '')
Run Code Online (Sandbox Code Playgroud)
但是,通常你会用'with'替换',这将使SQL Server在查询数据库时感到高兴.任何内置SQL函数(如替换)的技巧是它们也要求你加倍单引号.
因此,要在代码中替换"with",您可以这样做:
Replace(@strip, '''', '''''')
Run Code Online (Sandbox Code Playgroud)
当然......在某些情况下,如果在查询数据库时使用参数,则可以避免完全执行此操作.假设您从.NET应用程序查询数据库,那么您将使用SqlParameter类为查询提供SqlCommand参数,并且所有这些单引号业务将自动处理.这通常是首选方法,因为SQL参数也有助于防止SQL注入攻击.
你可以使用 char(39)
insert into my_table values('hi, my name'+char(39)+'s tim.')
Run Code Online (Sandbox Code Playgroud)
或者在这种情况下:
Replace(@strip,char(39),'')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
250540 次 |
| 最近记录: |