sql - 如何插入多行 - 需要一个循环?

标签 sql sql-server sql-server-2008 tsql

我有以下声明:

insert into forecast_entry.user_role_xref
        ( user_master_id ,
          role_id ,
          created_date ,
          created_by
        )
values
        ( 276 , -- user_master_id - int
          101 , -- role_id - int
          getdate() , -- created_date - datetime
          'MICHAELSK'  -- created_by - varchar(20)
        )

我需要为 role_id 101-355 生成一行(所以上面的语句相同,除了随着 role_id 递增而重复)。什么是最好的方法来做到这一点?为了完成工作,我打算编写一个具有循环的快速 C# 应用程序,但我确信这不是最好的方法,并希望在这里学习一些东西以避免将来不得不这样做(因为我我确定这种情况很常见)。

最佳答案

这是我使用的,只需根据需要进行修改。在这里,我使用循环变量将一堆序列号添加到表中:

USE MyDB

GO

DECLARE @MyCounter as INT

SET @MyCounter = 1  -- to use this multiple times you can just

                    -- change the starting number and run again
                    -- if you do not want duplicate numbers

WHILE @MyCounter < 1000  -- any value you want

 BEGIN

    INSERT INTO [MyDB].[dbo].[MyTable]
        ([NumberField])
    VALUES
        (@MyCounter)  -- insert counter value into table

        set @MyCounter = @MyCounter + 1;  -- increment counter

END

关于sql - 如何插入多行 - 需要一个循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9764621/

相关文章:

c# - 在一次往返中执行多个 SQL 命令

sql-server - 在 Where 子句中引用时,选择动态字符串具有不同的值

sql - 使用 SQL 根据记录计数显示结果

SQL 错误消息 142,级别 15,状态 2,第 0 行 'TABLE' 约束定义的语法不正确

mysql - MySQL 中何时使用单引号、双引号和反引号

sql - 索引上的 ANALYZE 命令在 PostgreSQL 中返回警告

C# Entity Framework 连接 - 访问数据所需的 dbcreator 角色

sql - 创建包含移出目标列表的查询

php - 检索插入记录的 ID : Php & MS SQL SERVER

sql-server-2008 - 一个奇怪的sql server插入问题?