我想在SQL Server中执行类似的操作:
INSERT INTO(Here I have SELECT which return Table name) (col1, col2, col3)
VALUES (a, b, c)
我使用Select
语句构建表名,我想在此表中插入一些值。
有可能吗?
答案 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)需要插入单引号,因此您必须使用其他引号转义单引号