Sql server 2008 验证特殊字符但允许空白的SQL查询

Sql server 2008 验证特殊字符但允许空白的SQL查询,sql-server-2008,tsql,Sql Server 2008,Tsql,在sql server中,*我正在验证一个列,其中不应允许使用特殊字符,但应允许使用空格 这是我使用的查询 select count(full_name) from stg_contact_details where full_name like '%[^a-Z0-9]%' and full_name like '% %' 例如:全名=suresh krishna(它有效) 全名=suresh%krishna(有效) full_name=suresh%krishna(它无法抛出计数) 如果

在sql server中,*我正在验证一个列,其中不应允许使用特殊字符,但应允许使用空格

这是我使用的查询

select count(full_name) 
from stg_contact_details where full_name like '%[^a-Z0-9]%' 
and full_name like '% %'
例如:全名=suresh krishna(它有效) 全名=suresh%krishna(有效) full_name=suresh%krishna(它无法抛出计数)

如果列中存在任何特殊字符,则应抛出错误。但如果只有空间,它就应该忽略

请给我一个线索

谢谢
Kailash

由于“%”在
语法中有特殊含义,因此必须对其进行转义

例如:

select * from stg_contact_details 
where full_name like '%[^a-Z0-9]%' and full_name like '% %' 
and full_name not like '%@%%' escape '@'
此查询使用
@
作为转义字符。所以转义字符后的第一个字符将被视为常规字符,但第一个和最后一个
%
将被视为特殊字符


更多信息:,请参见“类SQL条件-使用转义字符示例”一节

您使用“特殊字符”是什么意思?“抛出错误”是什么意思?谢谢你的回复。但我的要求是它可能是任何特殊的字符进来。所以它应该从空白处抛出错误部分。现在的问题是,如果空格和特殊字符同时出现,它将允许而不是显示错误消息。