sql - 使用一个 int 列表进行多次插入

标签 sql sql-server-2008 t-sql

这里我有一个由一个 SELECT 提供的 ID 列表,以及一个简单的插入示例

SELECT idUnit FROM dbo.GetUnitsTree(10)

INSERT INTO [Profession_Ext]
           ([FK_Personnal]
           ,[FK_Profession])
     VALUES
           (50
           ,<FK_Profession, int,>)

我想要与此相同的结果,但是是动态的(我想编写脚本)

INSERT INTO [Profession_Ext]
               ([FK_Personnal]
               ,[FK_Profession])
         VALUES
               (50,1),(50,2),(50,3),(50,4),(50,5),(50,6),(50,7),(50,8)

其中 50 是固定值。

怎么办?

最佳答案

编写以下一 strip 有 Select 语句的批量插入:

INSERT INTO [Profession_Ext] ([FK_Personnal] ,[FK_Profession])
SELECT 50 AS [FK_Personnal], tbl.[FK_Profession] 
FROM (
    SELECT 1 AS FK_Profession 
    UNION ALL SELECT 2
    UNION ALL SELECT 3
    UNION ALL SELECT 4
    UNION ALL SELECT 5
    UNION ALL SELECT 6
    UNION ALL SELECT 7
    UNION ALL SELECT 8
) AS tbl

关于sql - 使用一个 int 列表进行多次插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35132213/

相关文章:

sql - 合并复制数据库中的插入非常慢

t-sql - 在 SQL 中使用 EXISTS 作为列

sql - 将数字列更改为日期

sql - Oracle VIEW - 列中超过 4000 字节

SQL查询以获取最早的日期

sql - SQL Server 中删除和截断的区别。难道我错了……?

sql-server-2008 - 在 SQL Server 中表示树?

SQL 查询查找基于日期的数据的本地最大值、最小值

mysql - SQL初学者创建表时出错

mysql - 如何从数据库中删除重复条目?