SQL Server-插入表中-除1以外的所有列值均相同

约翰·布斯托斯

假设我的SQL Server 2008 DB中的表具有以下插入语句:

INSERT INTO MyTable 
    ([Val1], [Val2], [Val3], [Val4])
VALUES
    ('val1', 'val2' 'val3', 'val4_a'),
    ('val1', 'val2' 'val3', 'val4_b'),
    ('val1', 'val2' 'val3', 'val4_c'),
    ('val1', 'val2' 'val3', 'val4_d');

换句话说,for的所有值[Val1][Val3]保持不变,但是[Val4]一直在变化。

我当时正在考虑采取以下措施:

Declare @Val1 varchar(10)
Declare @Val2 varchar(10)
Declare @Val3 varchar(10)   
Declare @Val4  ... some kind of list of varchar(10) ...

Set @Val1 = 'val1'
Set @Val2 = 'val2'
Set @Val3 = 'val3'
Set @Val4 = ('val4_a', 'val4_b', 'val4_c', 'val4_d')

然后@Val4在这种情况下,只用一个insert语句进行某种循环这使得更改/更新变得非常容易,并使我的生活变得更加轻松!!

我知道这行不通-我只是将其作为我希望完成的事的一个例子-但是做这种事情的最佳方法是什么?

谢谢,我希望这个问题有道理!

Damien_The_Unbeliever

你可以写任意查询你的INSERT,如果你使用SELECT的不是VALUES

INSERT INTO MyTable 
    ([Val1], [Val2], [Val3], [Val4])
SELECT 'val1','val2','val3',v4.v
FROM (SELECT 'val4_a' union all
      SELECT 'val4_b' union all
      SELECT 'val4_c' union all
      SELECT 'val4_d') v4(v)

当然,如果您已经有了一个table变量,比如说@v4每个期望值包含一行,那么它会变得更加容易:

INSERT INTO MyTable 
    ([Val1], [Val2], [Val3], [Val4])
SELECT 'val1','val2','val3',v4.v
FROM @v4 v4

然后,当然,它可以插入1行,4行,100000行,无论您插入了多少行@v4


因此,完整的脚本可能是:

DECLARE @v4 table (v varchar(10) not null)
INSERT INTO @v4(v) VALUES ('val4_a'),('val4_b'),('val4_c'),('val4_d')

INSERT INTO MyTable 
    ([Val1], [Val2], [Val3], [Val4])
SELECT 'val1','val2','val3',v4.v
FROM @v4 v4

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在SQL Server表中插入多个值?

来自分类Dev

使用过程 SQL SERVER 在表中插入值

来自分类Dev

将 1 个表单中的值插入 2 个 sql server 表 (PHP) (SQL-Server)

来自分类Dev

如何从表中返回标识列值并在SQL Server中插入其他表?

来自分类Dev

用于插入的SQL Server存储过程会运行,但不会在表中插入值

来自分类Dev

SQL Server:基于不同表中的列向表中插入多行

来自分类Dev

在SQL Server表中插入对象列表

来自分类Dev

SQL Server表中的并行插入/更新

来自分类Dev

SQL Server表中的并行插入/更新

来自分类Dev

' ' 插入表中的 SQL Server 错误

来自分类Dev

更新SQL Server表中除重复记录之一以外的所有记录

来自分类Dev

将多个值插入SQL Server表

来自分类Dev

无法将值插入表 (SQL Server)

来自分类Dev

在MS SQL Server中插入多行并检索所有新表ID的背面

来自分类Dev

如何找到有关在sql server 2008中更新或插入sql表行的信息?

来自分类Dev

SQL Server如果dest表中不存在1值,则插入新行

来自分类Dev

SSIS:如何处理要在SQL Server表中插入的多选查找列值

来自分类Dev

SQL Server:识别列中出现的第一行值并插入到表中

来自分类Dev

如何使用外键将值插入到现有的 SQL Server 表中

来自分类Dev

如何在SQL Server中拆分字符串并将值插入表中

来自分类Dev

在SQL Server中拆分行和列并插入到临时表中?

来自分类Dev

将一个表中的值插入到 SQL Server 中的另一个表中

来自分类Dev

更新/插入触发器触发SQL Server中的相同表

来自分类Dev

SQL Server中的多对多关系-当基本表中没有插入时在外部表中添加引用

来自分类Dev

SQL Server:Insert语句当1个值保持相同时,插入多个值,直到所有值都插入为止

来自分类Dev

在表:SQL Server 2008中插入逗号分隔的值时出错

来自分类Dev

SQL Server:是否可以同时使用SELECT和VALUES将值插入表中?

来自分类Dev

使用存储过程将值列表插入到SQL Server表中

来自分类Dev

SQL Server:使用一个动态查询、常量等将值插入到表中

Related 相关文章

  1. 1

    如何在SQL Server表中插入多个值?

  2. 2

    使用过程 SQL SERVER 在表中插入值

  3. 3

    将 1 个表单中的值插入 2 个 sql server 表 (PHP) (SQL-Server)

  4. 4

    如何从表中返回标识列值并在SQL Server中插入其他表?

  5. 5

    用于插入的SQL Server存储过程会运行,但不会在表中插入值

  6. 6

    SQL Server:基于不同表中的列向表中插入多行

  7. 7

    在SQL Server表中插入对象列表

  8. 8

    SQL Server表中的并行插入/更新

  9. 9

    SQL Server表中的并行插入/更新

  10. 10

    ' ' 插入表中的 SQL Server 错误

  11. 11

    更新SQL Server表中除重复记录之一以外的所有记录

  12. 12

    将多个值插入SQL Server表

  13. 13

    无法将值插入表 (SQL Server)

  14. 14

    在MS SQL Server中插入多行并检索所有新表ID的背面

  15. 15

    如何找到有关在sql server 2008中更新或插入sql表行的信息?

  16. 16

    SQL Server如果dest表中不存在1值,则插入新行

  17. 17

    SSIS:如何处理要在SQL Server表中插入的多选查找列值

  18. 18

    SQL Server:识别列中出现的第一行值并插入到表中

  19. 19

    如何使用外键将值插入到现有的 SQL Server 表中

  20. 20

    如何在SQL Server中拆分字符串并将值插入表中

  21. 21

    在SQL Server中拆分行和列并插入到临时表中?

  22. 22

    将一个表中的值插入到 SQL Server 中的另一个表中

  23. 23

    更新/插入触发器触发SQL Server中的相同表

  24. 24

    SQL Server中的多对多关系-当基本表中没有插入时在外部表中添加引用

  25. 25

    SQL Server:Insert语句当1个值保持相同时,插入多个值,直到所有值都插入为止

  26. 26

    在表:SQL Server 2008中插入逗号分隔的值时出错

  27. 27

    SQL Server:是否可以同时使用SELECT和VALUES将值插入表中?

  28. 28

    使用存储过程将值列表插入到SQL Server表中

  29. 29

    SQL Server:使用一个动态查询、常量等将值插入到表中

热门标签

归档