SELECT INTO基于记录的动态表名

时间:2014-05-12 06:04:36

标签: sql sql-server tsql

我有一个数据表,我需要根据特定的字段值划分为多个表。

例如:

select name, date, state, country into dbo.[dynamicTable] from myDB

其中[dynamicTable]基于我的查询中的国家/地区值。

所以我在运行查询后会将dbo.Spaindbo.Australia等作为表格。

这是可能的,还是我必须以手动方式进行。

手动方式

select name, date, state into dbo.Spain from myDB where country = 'Spain'

然后对所有不同的国家,即澳大利亚,中国重复这一过程

1 个答案:

答案 0 :(得分:2)

您可以将动态SQL用于此类工作:

declare @sql nvarchar(max) = N''

select @sql = @sql + N'select name, date, state into dbo.' 
        + quotename(country)  
        + N' from myDB where Country=''' 
        + country + N'''; '
    from myDB

exec sp_executesql @sql