【发布时间】:2014-08-29 10:52:14
【问题描述】:
我要插入:
- 到数据库
TEST,表SUBJECT,字段aSubject当@Database = 'TS' - 到数据库
TEST1,表SUBJECT,字段aSubject当@Database = 'TS1' - 否则数据库
DEMO,表SUBJECT,字段aSubject
我试过这个:
DECLARE @Database varchar(10)
Set @Database = 'TS'
INSERT INTO
(
CASE
WHEN @Database = 'TS' THEN 'TEST.dbo.SUBJECT'
WHEN @Database = 'TS1' then 'TEST1.dbo.SUBJECT'
ELSE 'DEMO.dbo.SUBJECT' END
) (aSubject)
SELECT 'Company'
我得到错误:
Msg 102, Level 15, State 1, Line 5
Incorrect syntax near '('.
【问题讨论】:
-
表名或列名不能是变量。实际上,您必须创建一个扩展变量的新 SQL 语句。一种方法是动态 SQL,例如
declare @sql varchar(max) = 'select ...'; exec @sql;
标签: sql-server tsql variables insert-into