2016-12-20 16 views
0

別のデータベースに挿入する別のスクリプトを生成するために、テーブルからコンテンツをエクスポートするスクリプトを作成しました。特定の分野では、私は、この形式のアプリケーションから保存されたSQL文を持っている:アポストロフィ文字を使用してSQL Serverにsqlコマンドを挿入する方法

(...other fields values...),'Select case 
    when @myVar in ('1','4') then '1' 
    when @myVar in ('18','20') then '2' 
    when @myVar = '5' then '5' 
    when @myVar = '8' then '6' 
    when @myVar = '21' then '7' 
    when @myVar = '16' then '9' 
    when @myVar = '7' then '10' 
    when @myVar in ('22','34') then '11' 
    when @myVar = '11' then '12' 
    when @myVar = '10' then '13' 
    when @myVar = '9' then '14' 
    when @myVar = '13' then '15' 
    when @myVar = '3' then '20' 
    when @myVar = '17' then '22' 
    else '1' 
end', (...other fields values...) 

あなたは内側のアポストロフィはスクリプトをクラッシュされることがあります。

どのように元の文字列をそのまま挿入できますか?

私は多くの方法で置き換えて使用しようとしていますが、それを成功させることはできません。

+0

なぜこれをデータベースに保存していますか?これは何かが中心から離れているという兆候です。文字列にアポストロフィを含める場合は、アポストロフィを2つずつアポストロフィで作成してエスケープする必要があります。だからあなたの文字列の価値の中のどこにでも 'の代わりに'が必要です。 –

+1

[SQL Serverで一重引用符をエスケープするにはどうすればよいですか?](http://stackoverflow.com/questions/1586560/how-do-i-escape-a-single-quote-in-sql-server) – dfundako

答えて

-1

は、SELECT文を失い、ただCASEを使用します。あなたの時間と関心のため

SELECT 
    OtherStuff 
    ,CASE @myVar 
     WHEN '4' THEN '1' 
     WHEN '18' THEN '2' 
     WHEN '20' THEN '2' 
     WHEN '5' THEN '5' 
     WHEN '8' THEN '6' 
     WHEN '21' THEN '7' 
     WHEN '16' THEN '9' 
     WHEN '7' THEN '10' 
     WHEN '22' THEN '11' 
     WHEN '34' THEN '11' 
     WHEN '11' THEN '12' 
     WHEN '10' THEN '13' 
     WHEN '9' THEN '14' 
     WHEN '13' THEN '15' 
     WHEN '3' THEN '20' 
     WHEN '17' THEN '22' 
     ELSE '1' 
    END, 
    (...other fields values...) 
0

感謝を。私はreplace(@myvalue、 '' ''、 '' '' '' '')を使ってみるとうまくいきます。ごめんなさい...

関連する問題