插入选定的表名称

时间:2016-03-10 09:53:47

标签: sql-server select sql-insert

我想在SQL Server中执行类似的操作:

INSERT INTO(Here I have SELECT which return Table name) (col1, col2, col3) 
VALUES (a, b, c)

我使用Select语句构建表名,我想在此表中插入一些值。

有可能吗?

2 个答案:

答案 0 :(得分:1)

您可以使用动态SQL

declare @table varchar(100),@sqlst varchar(max)
select @table=tablename from tables

set @sqlst ='insert into '+  @table +'(1,2,3) values(''a'',''b'',''c'')'

exec(@sqlst)

答案 1 :(得分:0)

您可以通过下面的动态查询

来完成此操作
DECLARE @Q nvarchar(MAX)

SELECT @Q=N'INSERT INTO '+ tablename +N' (1,2,3) values(''a'',''b'',''c'')'  FROM SomeTable

EXEC(@Q)

请注意,由于字母数字值(如a,b,c)需要插入单引号,因此您必须使用其他引号转义单引号