【发布时间】:2016-03-10 09:53:46
【问题描述】:
我想在 SQL Server 中做这样的事情:
INSERT INTO(Here I have SELECT which return Table name) (col1, col2, col3)
VALUES (a, b, c)
我使用Select 语句建立表名,我想在这个表中插入一些值。
可以吗?
【问题讨论】:
标签: 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 语句建立表名,我想在这个表中插入一些值。
可以吗?
【问题讨论】:
标签: sql-server select sql-insert
您可以使用动态 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)
【讨论】:
您可以通过如下所示的动态查询来完成此操作
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 这样的字母数字值需要用单引号插入,因此您必须用另一个引号转义单引号
【讨论】: