SELECT * INTO Persons IN 'Backup.mdb' FROM Persons 复制到另一个数据库时出现‘in附近有语法错误’

本文介绍了一个 SQL Server 中数据迁移的问题及解决办法。原本尝试将一个表从当前数据库复制到另一个数据库时遇到语法错误,通过调整 SQL 语句成功解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

W3School上的代码如下:
​​​​​

SELECT *
INTO Persons IN 'Backup.mdb'
FROM Persons

意思是把本数据库的Persons表复制一个到Backup数据库中也名为Persons表。

我在sqlserver上这么写的时候出现了   '"in"附近有语法错误'    这一错误

不知道为什么。

 

 

解决问题后的代码:

我把语句改了一下就可以了,如下所示:

select  *

into Backup.dbo.Persons

from Persons;

 

### SQL `SELECT INTO` 子句概述 `SELECT INTO` 是一种用于创建新表并将数据复制到该新表中的SQL命令。此操作不仅会将选定的数据插入新的表中,还会自动基于源表定义新表的结构[^1]。 对于不同的数据库管理系统(DBMS),`SELECT INTO` 的支持情况有所不同;例如,在 MySQL 中并不直接提供对 `SELECT...INTO` 语法的支持,而是提供了功能类似的 `INSERT INTO...SELECT` 替代方案[^3]。 ### 创建完整的表副本 当需要完全复制现有表的内容及其所有列,可以使用如下形式: ```sql SELECT * INTO new_table_name FROM existing_table_name; ``` 这条语句将会把来自 `existing_table_name` 表的所有记录以及其所有的字段都转移到名为 `new_table_name` 的新建表里去。 ### 只选择特定列进行复制 如果只想要复制原表的部分列,则可以在 `SELECT` 后面指定感兴趣的那些列名: ```sql SELECT column1, column2, ... INTO new_table_with_selected_columns FROM source_table; ``` 这允许用户仅保留感兴趣的信息而不必携带不必要的额外负载。 ### 添加条件筛选数据 为了进一步控制哪些行应该被包含进来,还可以附加一个 `WHERE` 条件来过滤输入集: ```sql SELECT FirstName, LastName INTO persons_backup FROM Persons WHERE Age >= 18; ``` 上述例子展示了如何通过年龄阈值限定要备份的人群范围。 ### 跨数据库实例的操作 某些情况下可能涉及到跨不同数据库甚至服务器之间的迁移工作,这可以通过扩展语法指明目标位置: ```sql SELECT * INTO new_table [IN 'external_database'] FROM current_table; ``` 这里的 `[IN 'external_database']` 部分指示了新表应当建立在哪一个外部数据库内。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值