加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server 2005:使用单个查询插入多行

发布时间:2020-12-12 06:56:51 所属栏目:MsSql教程 来源:网络整理
导读:这应该是一个相当简单的问题,但是我还没有在网上找到一个坚实的答案。我试图在同一个表中插入多行,但只有一个语句。我在线看到的最流行的是以下内容,但我已经看到它只适用于SQL Server 2008: INSERT INTO Table (Name,Location) VALUES('Name1','Location
这应该是一个相当简单的问题,但是我还没有在网上找到一个坚实的答案。我试图在同一个表中插入多行,但只有一个语句。我在线看到的最流行的是以下内容,但我已经看到它只适用于SQL Server 2008:
INSERT INTO Table (Name,Location) VALUES
('Name1','Location1'),('Name2','Location2'),('Name3','Location3'),etc...

我喜欢这种方法,如果它可以使用SQL Server 2005,但我不认为它会。另一个选项,从我所看到的,与INSERT之后的UNION ALL的以下SELECT语句有关,这似乎很笨重。有没有人知道在2005年做最好的语法?

谢谢。

解决方法

是的。您必须在SQL Server 2005中使用UNION ALLs在单个语句中的SQL脚本中插入多行。
INSERT INTO Table 
  (Name,Location) 
SELECT 'Name1','Location1' 
UNION ALL
SELECT 'Name2','Location2'
UNION ALL
SELECT 'Name3','Location3'

另一个主要的替代方法是重复Insert语句多次,这是更详细的。在最后一种情况下,您需要小心使用显式交易,以避免许多单个提交的开销(当然是原子性原因)

如果您有很多行要插入,则可以使用BULK INSERT从一个语句中的分隔文件中加载它。

最后,如果这是数据库中您正在脚本编写的数据(可能在其他服务器上部署),则SSMS Tools Pack插件具有“生成插入语句”功能,可以为您生成这些语句。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读