我有一个需要帮助的以下查询
Declare @DB varchar(3)
set @DB = 'C01'
SELECT * FROM SVBNORD+@DB WHERE ORDER_DATE = ''
但我收到了一条消息
Msg 102, Level 15, State 1, Line 3
Incorrect syntax near '+'.
请你帮我纠正我的陈述。
答案 0 :(得分:2)
您应该使用execute
动态调用查询:
Declare @DB varchar(3)
set @DB = 'C01'
execute ('SELECT * FROM SVBNORD'+@DB+' WHERE ORDER_DATE = '''' ')
答案 1 :(得分:1)
你不能在普通的sql中这样做。但是,你可以动态地构建sql并执行它,如下所示:
DECLARE @sql NVARCHAR(MAX);
SET @sql =
'SELECT * FROM SVBNORD' + @DB + N'WHERE ORDER_DATE = ''''';
EXEC(@sql);
您需要将查询中的任何单引号加倍。