从sql server 2005中不同数据库中的另一个表创建表

发布于 2024-09-05 00:23:01 字数 346 浏览 5 评论 0原文

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

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

这是错误:

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

有人知道是什么问题吗?

提前致谢,

格雷格

I have a database "temp" with table "A". I created new database "temp2".
I want to copy table "A" from "temp" to a new table in "temp2" . I tried this statement but it says I have incorrect syntax, here is the statement:

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

Here is the error:

Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'IN'.
Msg 156, Level 15, State 1, Line 3
Incorrect syntax near the keyword 'IN'.

Anyone knows whats the problem?

Thanks in advance,

Greg

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

你好,陌生人 2024-09-12 00:23:02

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

SELECT * INTO temp2.dbo.b
FROM temp.dbo.a where 1=0 

If you don,t want the data and only want the shcema of table without data then u can use this approach also...

SELECT * INTO temp2.dbo.b
FROM temp.dbo.a where 1=0 
只是偏爱你 2024-09-12 00:23:02

查询应该是:

SELECT * INTO temp2.dbo.b
FROM temp.dbo.a

Query should be:

SELECT * INTO temp2.dbo.b
FROM temp.dbo.a
放手` 2024-09-12 00:23:02

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

SELECT TOP 0 * INTO temp2.dbo.b
FROM temp.dbo.a

If you don't want the data you can do:

SELECT TOP 0 * INTO temp2.dbo.b
FROM temp.dbo.a
红玫瑰 2024-09-12 00:23:02

最简单的方法是右键单击数据库 temp 中的表 A,然后单击 Script Table as => 创建到 => 新查询编辑器窗口。这将创建脚本。

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

USE [temp2]

....

CREATE TABLE [dbo].[B]

.....

The easiest way is by right click on table A from database temp, then click Script Table as => CREATE to => New Query Editor Window. This will create the script.

Then, change following 2 lines. and run it for new database.

USE [temp2]

....

CREATE TABLE [dbo].[B]

.....
情丝乱 2024-09-12 00:23:02

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

insert into temp2.​​dbo.b (列)
从 temp.dbo.a 中选择列

Note that SELECT INTO wont copy the indexes. If you want them too, you can generate script from source;run in the target db and do insert into

insert into temp2.dbo.b (columns)
select columns from temp.dbo.a

简单气质女生网名 2024-09-12 00:23:01

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

SELECT * 
INTO temp2.dbo.B
FROM temp.dbo.A

I've not seen that syntax before. This is what I normally use.

SELECT * 
INTO temp2.dbo.B
FROM temp.dbo.A
黎歌 2024-09-12 00:23:01

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

名称结构为<服务器名称>.<数据库名称>.<架构>.<表>。由于两个表都位于同一服务器上,因此您可以省略它,但仍然需要其余部分:

SELECT * 
INTO temp2.dbo.B
FROM temp.dbo.A

You need to qualify enough of the table name for SQL Server to be able to identify the correct table.

The name structure is <server name>.<database name>.<schema>.<table>. As both tables live on the same server you can dispense with that, but still need the rest:

SELECT * 
INTO temp2.dbo.B
FROM temp.dbo.A
多情癖 2024-09-12 00:23:01

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

CREATE TABLE `destination_database_name`.table_dummy AS (
SELECT * FROM currentDB.table
)

If you want to create a new table in another DB from the current DB, run the query.

CREATE TABLE `destination_database_name`.table_dummy AS (
SELECT * FROM currentDB.table
)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文