I MUCH prefer to do my dynamic SQL this way. Now I don't have to worry about if it is 1, 2, 3, N stupid single quotes to make the string correct!! 🙂
SET QUOTED_IDENTIFIER OFF
GO
declare @dbname varchar(50),@objname varchar(20),@sql varchar(1000)
set @dbname='XYZ'
Set @objname='TMP'
Set @sql="Select * from "+@dbname+".sys.objects where name = '"+@objname+"'"
Execute (@sql)
Best,
Kevin G. Boles
SQL Server Consultant
SQL MVP 2007-2012
TheSQLGuru on googles mail service