0
- 我正在使用Microsoft SQL 。
- 「Someone」爲我提供了一個
INSERT
「預定義語句」列表,我不能修改外部SQL(例如使用Python之類的腳本語言)。 - 作爲「某人」我有問題試圖轉義字符類型爲
NVARCHAR
的字段。
例如說我需要運行下面的SQL語句:SQL丟失用於INSERT語句的轉義字符
INSERT INTO TableX VALUES('John Doe's value') -- This is not working because of single quotes...
我需要找到一種方法來變換要插入的字符串(John Doe's value
),而不使用SQL語句之外的方法。
我unsuccesfully試過類似如下的語句,串聯單引號與REPLACE
功能與其它單引號:
INSERT INTO TableX VALUES('' + REPLACE('John Doe's value'), ''', '''' + '')
或者
INSERT INTO TableX VALUES('''''' + REPLACE(''''''John Doe's value'''''''), '''''', '''''''' + '''''')
爲了對付逃逸字符,但它不工作。
我寧願使用函數或簡單的東西,而不是使用存儲過程或更復雜的解決方案。
是的,我應該避免這種情況。但有時你需要這樣做,即使你知道這不是最好的方法,只是因爲有人告訴你這樣做,而且你不能扭轉關係「主奴隸」。 – TPPZ
儘管這個論點對你沒有幫助,但我認爲這是主人給出「插入」陳述以確保它們是良構的責任,在這種情況下。我在這裏看到的「奴隸」與DBMS本身沒有什麼不同,如果作爲主用戶,我給它一個不正確的SQL,它只是不能執行,並將錯誤拋在我的臉上:) – Vikdor
有時真實世界真的很複雜解決方案在其背景中有歷史。 我應該從MS Word的Mail Marge和MS Excel電子數據表中獲得那些'INSERT'語句。這種方式已經建立並經過了測試(PM,開發人員,QA部門等內部程序)。沒有辦法逃避「開發者」(即新方法將增加成本......)。 我的解決方法是使用MS Excel中的「查找和替換」替換'''替換''',修復此問題。 我想知道是否有更接近程序化的方式... – TPPZ