0

Below is my query

DECLARE @DB VARCHAR(3)

SET @DB = 'PK1'

SELECT DATA FROM +@DB+_ADD 

I get an error message

incorrect syntax near +

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
vijay kumar
  • 203
  • 1
  • 6
  • 16

2 Answers2

3

+ is an operator that works on values, such as constants, functions, and columns. It doesn't work on identifiers within the query. You can do what you want with dynamic SQL:

DECLARE @DB VARCHAR(3);
SET @DB = 'PK1';

DECLARE @sql NVARCHAR(max) = 'SELECT DATA FROM ' + @DB_ + 'ADD';

EXEC sp_executesql @sql;
Gordon Linoff
  • 1,242,037
  • 58
  • 646
  • 786
0

You need dynamic sql for this, something like....

DECLARE @DB VARCHAR(3)
DECLARE @Sql NVARCHAR(MAX);

SET @DB = 'PK1'

SET @Sql = N'SELECT DATA FROM ' + QUOTENAME(@DB+'_ADD');

Exec sp_executesql @Sql
M.Ali
  • 67,945
  • 13
  • 101
  • 127