Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to use single quotations inside a transact sql statement

i want use single quotations inside a transact sql statement, then execute that statement.

for example my query is:

Select * FROM MyTable WHERE MyTable.Id = '1'

now i want use like this:

Declare @SQLQuery AS NVarchar(4000)
SET @SQLQuery = ' Select * FROM MyTable WHERE MyTable.Id = '1' '
Execute (@SQLQuery)

this not work, and this error occurred :

Invalid column name '1'

I know problem is quotations in left and right side of the 1

this is a sample and i want use of this way to a large query

of course, i want use local variable instead for example '1' and my local variable is varchar

any idea?

like image 408
hamed aj Avatar asked Jul 26 '11 19:07

hamed aj


People also ask

How do you add a single quote to a statement?

To insert a ' into most databases (SQL, MySQL, MariaDB, etc) you need to double it. That is, use '' instead of ' where '' is two single quotes immediately next to one another.

How do I include a single quote in a SOQL query?

To handle single quotes or other reserved character in a SOQL query, we need to put a backslash in front of the character ( \ ).


2 Answers

Just escape the quotes:

change

SET @SQLQuery = ' Select * FROM MyTable WHERE MyTable.Id = '1' '

to

SET @SQLQuery = ' Select * FROM MyTable WHERE MyTable.Id = ''1'' '

** Edit **

To include a local variable in the result, you could updated your query like this:

DECLARE @SQLQuery varchar(200)
DECLARE @tmpInt int

SET @tmpInt = 2
SET @SQLQuery = ' Select * FROM MyTable WHERE MyTable.Id = ' + 
     convert(varchar, @tmpInt) + ' '
like image 106
Ryan Avatar answered Nov 16 '22 02:11

Ryan


Double the single quotes in the quote!

SET @SQLQuery = ' Select * FROM MyTable WHERE MyTable.Id = ''1'' '
like image 30
Mat Avatar answered Nov 16 '22 03:11

Mat