Joh*_*ohn 4 sql sql-server stored-procedures
我看到有一个非常类似的问题已经回答了讨论同样的问题,但我似乎无法理解它.下面是我的代码在存储过程中的副本.我需要以某种方式,让第二个insert语句将第一个生成的CompanyID插入到第二个Statement中.我感谢任何帮助.
谢谢!!
@comp_name nvarchar (50),
@City nvarchar (50),
@State nvarchar (10),
@Address ntext,
@Zip_Code nvarchar (50),
@Country nvarchar (50),
@cust_name nvarchar (50),
@CompanyID int
AS
INSERT INTO Company_Listing
(comp_name, City, State, Address, Zip_Code, Country)
VALUES (@comp_name, @City, @State, @Address, @Zip_Code, @Country)
INSERT INTO Customer_Listing
(cust_name, City, State, Address, Zip_Code, Country, CompanyID)
VALUES (@comp_name,@City,@State,@Address,@Zip_Code,@Country,@CompanyID)
Run Code Online (Sandbox Code Playgroud)
假设这是针对SQL Server的 - 是的,请使用SCOPE_IDENTITY:
@comp_name nvarchar (50),
@City nvarchar (50),
@State nvarchar (10),
@Address ntext,
@Zip_Code nvarchar (50),
@Country nvarchar (50),
@cust_name nvarchar (50),
@CompanyID int
AS
INSERT INTO Company_Listing
(comp_name, City, State, Address, Zip_Code, Country)
VALUES (@comp_name, @City, @State, @Address, @Zip_Code, @Country)
INSERT INTO Customer_Listing
(cust_name, City, State, Address, Zip_Code, Country, CompanyId)
VALUES (@comp_name,@City,@State,@Address,@Zip_Code,@Country,SCOPE_IDENTITY())
Run Code Online (Sandbox Code Playgroud)
从MSDN的文档SCOPE_IDENTITY():
返回插入同一范围内的标识列的最后一个标识值.范围是一个模块:存储过程,触发器,函数或批处理.因此,如果两个语句在同一存储过程,函数或批处理中,则它们在同一范围内.
| 归档时间: |
|
| 查看次数: |
5164 次 |
| 最近记录: |