8

我有一个带有表“A”的数据库“temp”。我创建了新数据库“temp2”。我想将表 "A" 从 "temp" 复制到 "temp2" 的新表中。我试过这个语句,但它说我的语法不正确,这是语句:

CREATE TABLE B IN 'temp2'
  AS (SELECT * FROM A IN 'temp');

这是错误:

消息 156,级别 15,状态 1,第 2 行关键字“IN”附近的语法不正确。消息 156,级别 15,状态 1,第 3 行关键字“IN”附近的语法不正确。

有谁知道是什么问题?

提前致谢,

格雷格

4

8 回答 8

22

我以前没有见过这种语法。这是我通常使用的。

SELECT * 
INTO temp2.dbo.B
FROM temp.dbo.A
于 2010-06-06T07:41:03.930 回答
5

您需要限定足够的表名,以便 SQL Server 能够识别正确的表。

名称结构为<server name>.<database name>.<schema>.<table>. 由于两个表都位于同一台服务器上,因此您可以省去它,但仍然需要其余的:

SELECT * 
INTO temp2.dbo.B
FROM temp.dbo.A
于 2010-06-06T07:44:43.430 回答
3

如果要从当前数据库在另一个数据库中创建新表,请运行查询。

CREATE TABLE `destination_database_name`.table_dummy AS (
SELECT * FROM currentDB.table
)
于 2017-08-15T10:04:26.103 回答
2

如果您不想要数据并且只想要没有数据的表的 shcema,那么您也可以使用这种方法......

SELECT * INTO temp2.dbo.b
FROM temp.dbo.a where 1=0 
于 2015-08-10T07:23:57.260 回答
1

查询应该是:

SELECT * INTO temp2.dbo.b
FROM temp.dbo.a
于 2010-06-06T07:41:13.160 回答
1

如果您不想要数据,您可以执行以下操作:

SELECT TOP 0 * INTO temp2.dbo.b
FROM temp.dbo.a
于 2013-09-19T15:16:39.343 回答
0

请注意, SELECT INTO 不会复制索引。如果你也想要它们,你可以从源代码生成脚本;在目标数据库中运行并插入

插入 temp2.​​dbo.b(列) 从 temp.dbo.a 中选择列

于 2010-06-07T09:19:50.280 回答
0

最简单的方法是右键单击A数据库中的表temp,然后单击Script Table as=> CREATE to=> New Query Editor Window。这将创建脚本。

然后,更改以下 2 行。并为新数据库运行它。

USE [temp2]

....

CREATE TABLE [dbo].[B]

.....
于 2016-07-28T17:41:18.173 回答