如何使用存储过程以下述格式将数据插入表中?
要求::每个DeptCode
将具有多个EmpName
(唯一),这是一个动态值。
例如,一个DeptCode
可能有20个EmpName
,另一个可能只有5个。我正在寻找类似批量插入的方法。
dbo.EmpList
+----+-----------+------------+
| Id | DeptCode | EmpName |
+----+-----------+------------+
| 1 | 001 | Tony |
| 2 | 001 | Steve |
| 3 | 001 | John |
| 4 | 001 | Adkins |
| 5 | 002 | Clark |
| 6 | 002 | Doe |
| 7 | 002 | Natasha |
| 8 | 003 | Thanos |
+----+-----------+------------+
答案 0 :(得分:0)
简单的SQL语句:
INSERT INTO dbo.EmpList
VALUES ('001', 'Tony'), ('001', 'Steve')
.... (And so on for additional data rows)
如果Id
是您的主键,则会为每个插入语句的每一行添加它。
答案 1 :(得分:0)
基本上,您需要像这样创建sp。当然,您还需要添加一些控件和验证:
DROP PROCEDURE P_InsertEmp
GO
CREATE PROCEDURE P_InsertEmp
@Id INT /*If it is identity ignore it*/
,@DeptCode VARCHAR(10)=''
,@EmpName VARCHAR(100)=''
AS
BEGIN
INSERT INTO EmpList
SELECT @Id,@DeptCode,@EmpName
SELECT 'Employee has been added'
END
GO
EXEC P_InsertEmp
@Id ='1'
,@DeptCode ='001'
,@EmpName ='AA'