在动态查询中处理单引号

时间:2015-04-04 04:28:51

标签: sql-server-2008

我有以下查询,我尝试在我的实时应用程序中使用动态查询将记录插入临时表。

CREATE TABLE #AlertDealInfo1 (key varchar(50), Name varchar(50))
    declare @selectquery varchar(max)
    set @selectquery = 'select ''a'',''band'''
    insert #AlertDealInfo1 
    exec (@selectquery)

    select * from #AlertDealInfo1
    drop table #AlertDealInfo1

上面的查询工作正常,但如果我想插入一个带有条带的记录作为名称,则在字符串''后面显示未闭合的引号。

CREATE TABLE #AlertDealInfo1 (deal_key varchar(50), alertName varchar(50))
declare @selectquery varchar(max)
set @selectquery = 'select ''a'',''band''s'''
insert #AlertDealInfo1 
exec (@selectquery)

select * from #AlertDealInfo1
drop table #AlertDealInfo1

解决此问题的更优雅方法是什么?

2 个答案:

答案 0 :(得分:0)

试试这个:

CREATE TABLE #AlertDealInfo1 (deal_key varchar(50), alertName varchar(50))
declare @selectquery varchar(max)
set @selectquery = 'select ''a'',''band''''s'''
insert #AlertDealInfo1 
exec (@selectquery)

select * from #AlertDealInfo1
drop table #AlertDealInfo1

您需要额外的''

答案 1 :(得分:0)

我发现这篇关于引号的好文章:

http://www.sqlservercentral.com/articles/T-SQL/95670/

真的有帮助。