如何使用"选择*进入"在sp_msforeachtable -T-SQL中

时间:2017-05-11 05:17:14

标签: sql sql-server

我在query下面创建duplicate table

select * into person1  from person

但我知道我需要query为所选duplicate中的每个table创建database

对此我尝试如下:

Declare @Time nvarchar(10)=1
Declare @Comment nvarchar(max)
set  @Comment ='select * into ?'+@Time + '  '+'from ?'

exec sp_msforeachtable @Comment

但它返回错误:

  

Msg 102,Level 15,State 1,Line 1
  ' 1'附近的语法不正确   消息102,级别15,状态1,行1   ' 1'附近的语法不正确。

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:2)

在评论中我们的对话后,我认为你将不得不使用动态的SQL。 你可以使用这样的东西:

DECLARE @Sql nvarchar(max) = '';

SELECT @Sql = @Sql + 'SELECT * INTO '+ TABLE_NAME +'1 FROM '+ TABLE_NAME +';'
FROM INFORMATION_SCHEMA.TABLES

EXEC(@SQL)