This question is based on this answer
I want to create a database via a SQL script which checks if the database exists before creation, i.e.
DECLARE @DBNAME VARCHAR(255)
SET @DBNAME = 'TestDB'
DECLARE @CREATE_TEMPLATE VARCHAR(MAX)
DECLARE @SQL_SCRIPT VARCHAR(MAX)
SET @CREATE_TEMPLATE = 'IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = {DBNAME})
BEGIN
CREATE DATABASE {DBNAME}
END'
SET @SQL_SCRIPT = REPLACE(@CREATE_TEMPLATE, '{DBNAME}', @DBNAME)
EXECUTE (@SQL_SCRIPT)
However, I get this error:
Msg 207, Level 16, State 1, Line 1
Invalid column name 'TestDB'
What's wrong? How can I resolve it? Thanks.