# Escaping in MSSQL script?

**URL:** <https://www.ruby-forum.com/t/escaping-in-mssql-script/52213>\
**Category:** Ruby\
**Created:** [January 11, 2006, 11:13pm UTC](https://www.ruby-forum.com/t/escaping-in-mssql-script/52213 "2006-01-11T23:13:19Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Chris\_McMahon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/74df32/32.png) [@Chris\_McMahon](https://www.ruby-forum.com/u/Chris_McMahon)\
**Post date:** [January 11, 2006, 11:13pm UTC](https://www.ruby-forum.com/t/escaping-in-mssql-script/52213/1 "2006-01-11T23:13:19Z")

</div>

Hi…  
Can anyone suggest the proper way to escape the backslashes in the  
directory name in the following script?

d = c.run(“ALTER DATABASE fooDB MODIFY FILE (NAME = foo\_log, FILENAME =  
‘C:\Program Files\Microsoft SQL  
Server\MSSQL\fooPlus\fooPlus\_log.LDF’”)

The obvious solutions yield either “Incorrect syntax…” or “Invalid  
escape character syntax” messages.

Thanks…  
-CHris

---

<div class="post-metadata">

**Author:** ![Chris\_McMahon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/74df32/32.png) [@Chris\_McMahon](https://www.ruby-forum.com/u/Chris_McMahon)\
**Post date:** [January 11, 2006, 11:31pm UTC](https://www.ruby-forum.com/t/escaping-in-mssql-script/52213/2 "2006-01-11T23:31:48Z")

</div>

Chris McMahon wrote:

> escape character syntax" messages.
> 
> Thanks…  
> -CHris

Four backslashes should work. Wildly guessing only.

---

<div class="post-metadata">

**Author:** ![Chris\_McMahon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/74df32/32.png) [@Chris\_McMahon](https://www.ruby-forum.com/u/Chris_McMahon)\
**Post date:** [January 11, 2006, 11:50pm UTC](https://www.ruby-forum.com/t/escaping-in-mssql-script/52213/3 "2006-01-11T23:50:03Z")

</div>

Good guess, but

‘C:\\Program Files\Microsoft  
SQLServer\MSSQL\fooPlus\fooPlus\_log.LDF’

yields

Incorrect syntax near ‘C:\Program Files\Microsoft SQL  
Server\MSSQL\data\fooPlus\fooPlus\_log.LDF’

---

<div class="post-metadata">

**Author:** ![Chris\_McMahon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/74df32/32.png) [@Chris\_McMahon](https://www.ruby-forum.com/u/Chris_McMahon)\
**Post date:** [January 12, 2006, 12:35am UTC](https://www.ruby-forum.com/t/escaping-in-mssql-script/52213/4 "2006-01-12T00:35:30Z")

</div>

Chris McMahon wrote:

> 

I meant four backslashes -everywhere-. Gets escaped to two backslashes  
by Ruby, then to one backslash by MS SQL.

David V.

---

<div class="post-metadata">

**Author:** ![Chris\_McMahon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/74df32/32.png) [@Chris\_McMahon](https://www.ruby-forum.com/u/Chris_McMahon)\
**Post date:** [January 12, 2006, 1:21am UTC](https://www.ruby-forum.com/t/escaping-in-mssql-script/52213/5 "2006-01-12T01:21:13Z")

</div>

d = c.run("…‘c:\\blah…’…")

rather than using double quotes which processes escapes within, use  
single quotes and use ’ when you need single quotes within?

d = c.run(’…‘c:\blah…’…’)

-Joby

---

<div class="post-metadata">

**Author:** ![Chris\_McMahon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/74df32/32.png) [@Chris\_McMahon](https://www.ruby-forum.com/u/Chris_McMahon)\
**Post date:** [January 11, 2006, 11:59pm UTC](https://www.ruby-forum.com/t/escaping-in-mssql-script/52213/6 "2006-01-11T23:59:06Z")

</div>

Shouldn’t you have c:\what\ever or c:\what\ever? It’s not a URL 🙂

---

<div class="post-metadata">

**Author:** ![Chris\_McMahon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/74df32/32.png) [@Chris\_McMahon](https://www.ruby-forum.com/u/Chris_McMahon)\
**Post date:** [January 12, 2006, 1:27am UTC](https://www.ruby-forum.com/t/escaping-in-mssql-script/52213/7 "2006-01-12T01:27:17Z")

</div>

Joby B. wrote:

> d = c.run("…‘c:\\blah…’…")
> 
> rather than using double quotes which processes escapes within, use  
> single quotes and use ’ when you need single quotes within?
> 
> d = c.run(’…‘c:\blah…’…’)  
> -Joby

you still need to escape backslashes even when using single-quoted  
string  
literals. (maybe you’re referring to php?)

–moogs

---

<div class="post-metadata">

**Author:** ![Chris\_McMahon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/74df32/32.png) [@Chris\_McMahon](https://www.ruby-forum.com/u/Chris_McMahon)\
**Post date:** [January 12, 2006, 3:10am UTC](https://www.ruby-forum.com/t/escaping-in-mssql-script/52213/8 "2006-01-12T03:10:22Z")

</div>

moogs wrote:

> you still need to escape backslashes even when using single-quoted  
> string literals. (maybe you’re referring to php?)
> 
> –moogs

Doesn’t Ruby have a general delimiter wart for raw strings? I know  
Python has, can’t recall about Ruby.

David V.
