查询中的单引号

时间:2012-09-17 13:53:00

标签: sql tsql

如何在查询中插入单引号?

示例

select *, 'INSERT INTO San_Endereco (Endereco_Id, Logradouro_Id, Bairro_Id, CEP, Logradouro, Livre) VALUES 
(' + CAST(Endereco_Id as varchar) + ','
+ CAST(Logradouro_Id as varchar) + ','
+ CAST(Bairro_Id as varchar) + ','
+ CAST (CEP as varchar) + ','
+ CAST(Logradouro as varchar) + ','
+ CAST(Livre as varchar) + ')'  as teste
FROM San_Endereco

在每个CAST之前我需要把单引号。我怎么能这样做?

5 个答案:

答案 0 :(得分:9)

使用两个单引号:''

select *, 'INSERT INTO San_Endereco (Endereco_Id, Logradouro_Id, Bairro_Id, CEP, Logradouro, Livre) VALUES  
(''' + CAST(Endereco_Id as varchar) + ''',''' 
+ CAST(Logradouro_Id as varchar) + ''',''' 
+ CAST(Bairro_Id as varchar) + ''',''' 
+ CAST (CEP as varchar) + ''',''' 
+ CAST(Logradouro as varchar) + ''',''' 
+ CAST(Livre as varchar) + ''')'''  as teste 
FROM San_Endereco 

答案 1 :(得分:2)

使用双引号''

如果要插入的实际数据中包含单引号,则该命令通常会损坏。要解决这个问题,只需用两个引号替换任何单引号(不是双引号字符,而是两个单引号字符)。

答案 2 :(得分:1)

declare @var varchar(100)
select @var = 'txt'        
select char(39)+@var+char(39) -- with single quote

答案 3 :(得分:0)

select *, 'INSERT INTO San_Endereco (Endereco_Id, Logradouro_Id, Bairro_Id, CEP, Logradouro, Livre) VALUES 
        (''' + CAST(Endereco_Id as varchar) + ''','
    + ....

答案 4 :(得分:0)

你必须在字符串中使用'两次:

declare @var varchar(100)
select @var = 'txt'        
select ' '+@var+' ' -- without single quote
select ''''+@var+'''' -- with single quote