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
  • 704,970
  • 168
  • 1,303
  • 1,425
vijay kumar
  • 193
  • 1
  • 5
  • 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,198,228
  • 53
  • 572
  • 709
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
  • 65,124
  • 12
  • 92
  • 119