Search code examples
pythonpython-3.xpymssql

Correctly pass a db name having '-' in pymssql


I have a db name which consists of a '-' (like dbName-2020). When I am trying to execute query I am getting following error:

pymssql.ProgrammingError: (102, b"Incorrect syntax near '-'.DB-Lib error message 20018, severity 15:\nGeneral SQL Server error: Check messages from the SQL Server\n")

Here is code I used:

serverName = 'servername.com'
userName = 'user2'
passWord = 'pass2'
dbName = 'dbName-2020'
conn = pymssql.connect(serverName , userName , passWord, "tempdb")
cursor1 = conn.cursor()
db_query = "SELECT CONVERT(date,LastImportDate),* from "+dbName+"..tblStores WHERE run= %s"
query_result1 = cursor1.execute(db_query,('true'))
query_output = cursor1.fetchone()

Same code is working for all other databases. How can I pass a db name having '-'?


Solution

  • Use square bracket

    dbName = '[dbName-2020]'
    

    What does the SQL Standard say about usage of backtick(`)?