Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL在等号后面加引号_Sql_Sql Server - Fatal编程技术网

SQL在等号后面加引号

SQL在等号后面加引号,sql,sql-server,Sql,Sql Server,我有一个SQL字符串,我想在等号后用引号括起来。 当前:@Condition=N'Sev=300或EVC=102和SRC=380P064 之后:@Condition=N'Sev='300'或EVC='102'和SRC='380P064' 有没有一个快速解决办法来得到我想要的?谢谢 我不明白你的问题,但我会试试看 如果你想用'来表示一个字符串,你需要在你的第一个N'Sev中转义它。像这样 @Condition = N/'Sev = '300' OR EVC = '102' AND SRC =

我有一个SQL字符串,我想在等号后用引号括起来。 当前:
@Condition=N'Sev=300或EVC=102和SRC=380P064
之后:
@Condition=N'Sev='300'或EVC='102'和SRC='380P064'

有没有一个快速解决办法来得到我想要的?谢谢


我不明白你的问题,但我会试试看

如果你想用'来表示一个字符串,你需要在你的第一个N'Sev中转义它。像这样

@Condition = N/'Sev = '300' OR EVC = '102' AND SRC = '380P064'

你也可以考虑用“代替”/P>

@Condition = N'Sev = "300" OR EVC = "102" AND SRC = "380P064"

我不明白你的问题,但我会试试看

如果你想用'来表示一个字符串,你需要在你的第一个N'Sev中转义它。像这样

@Condition = N/'Sev = '300' OR EVC = '102' AND SRC = '380P064'

你也可以考虑用“代替”/P>

@Condition = N'Sev = "300" OR EVC = "102" AND SRC = "380P064"

不好意思,我以前没看到这个

Declare @Condition nvarchar(max) = N'Sev = 300 OR EVC = 102 AND SRC = 380P064 AND XXX = HELLO'

Set @Condition = Replace(Replace(Replace(@Condition,'= ','= '''),' OR ',''' OR '),' AND ',''' AND ')+''''

Select @Condition
返回

Sev = '300' OR EVC = '102' AND SRC = '380P064' AND XXX = 'HELLO'
或者如果你想要原版

Set @Condition=@Condition+''''
Select @Condition = Replace(@Condition,MapFrom,MapTo)
 From  (values ('= ','= ''')
              ,(' OR ',''' OR ')
              ,(' AND ',''' AND ')
       ) A (MapFrom,MapTo) 


Select @Condition

不好意思,我以前没看到这个

Declare @Condition nvarchar(max) = N'Sev = 300 OR EVC = 102 AND SRC = 380P064 AND XXX = HELLO'

Set @Condition = Replace(Replace(Replace(@Condition,'= ','= '''),' OR ',''' OR '),' AND ',''' AND ')+''''

Select @Condition
返回

Sev = '300' OR EVC = '102' AND SRC = '380P064' AND XXX = 'HELLO'
或者如果你想要原版

Set @Condition=@Condition+''''
Select @Condition = Replace(@Condition,MapFrom,MapTo)
 From  (values ('= ','= ''')
              ,(' OR ',''' OR ')
              ,(' AND ',''' AND ')
       ) A (MapFrom,MapTo) 


Select @Condition


你能再解释一下吗?我不太明白..所以我在动态SQL查询中传递一个参数,在@Condition中传递一个或多个参数,我想把这些值放在相等的内引号后面。例如,Sev=100将变为Sev='100'或Cond=Hi变为Cond='Hi'使用sp_executesql存储过程来执行动态sql。这允许您正确地传递参数。您将自己暴露于sql注入的方式。另外,代码将更难维护。你能解释更多吗?我不太明白..所以我在动态SQL查询中传递一个参数,在@Condition中传递一个或多个参数,我想把这些值放在相等的内引号后面。例如,Sev=100将变为Sev='100'或Cond=Hi变为Cond='Hi'使用sp_executesql存储过程来执行动态sql。这允许您正确地传递参数。您将自己暴露于sql注入的方式。此外,代码将更难维护。Sev=300只是一个示例,它可以是任何东西,字符串的长度可以长达1000 charsHmm。。见我的编辑。。我不太明白。。1000个字符…?你想让它自动完成吗?是的,我想让它自动完成。。您从哪里获得用于检查sql的数据?因为,你基本上需要它来知道你是要检查一个字符串还是一个整数。Sev=300只是一个例子,它可以是任何东西,字符串的长度可以长达1000个字符。。见我的编辑。。我不太明白。。1000个字符…?你想让它自动完成吗?是的,我想让它自动完成。。您从哪里获得用于检查sql的数据?因为,你基本上需要它来知道你是要检查一个字符串还是一个整数。例如,如果我有COND=Hi,我希望它是COND='Hi'@krishnel刚刚看到你的评论,我该如何使用它。让我再试一试,我觉得你是在绕着问题转,而不是通过它@Krishneil@scsimon我怀疑他正在构建一些动态SQL,我猜是UI驱动,如果说例如我有COND=Hi,我希望它是COND='Hi',@krishnel刚刚在顶部看到你的评论,我将如何使用它。让我再试一试,我觉得你是在绕着问题转,而不是通过它@Krishneil@scsimon我怀疑他正在构建一些动态SQL,我猜是UI驱动的