这是重新 我想通过利用 SELECT INTO 使用查询结果创建一个表。 语法
SELECT *
INTO Persons_Backup
FROM Persons
与我想要实现的目标非常接近,不同之处在于我希望 FROM 使用查询作为源。
我的情况比这些简单的例子要复杂一些。
我需要创建一个表并同时插入多行。如果我可以(我不能)使用以前创建的表,则语句将如下所示:
INSERT INTO Person_Backup12 (Col1, Col2, Col3)
Select 1, 'a','2001-01-01 12:00'
UNION ALL
Select 83, 'z','2011-09-30 13:27'
UNION ALL
Select 777, 'k','1997-04-25 09:27'
我可以在创建表的同时执行此操作吗?
最佳答案
您可以将查询放入公共(public)表表达式或派生表中,然后从中SELECT ... INTO
。
;WITH cte (Col1, Col2, Col3) AS
(
Select 1, 'a','2001-01-01 12:00'
UNION ALL
Select 83, 'z','2011-09-30 13:27'
UNION ALL
Select 777, 'k','1997-04-25 09:27'
)
SELECT *
INTO NewTable
FROM cte
在这种情况下,您可能需要一些显式转换来获取所需的列数据类型(datetime
而不是 char
等)
关于sql - 对多行使用 SELECT INTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5566226/