Csharp/C#教程:将值传递给一个表并在父表中更新分享


将值传递给一个表并在父表中更新

我有两张桌子。 dbo.Emp EmpID(PK)| 名称| typeid的(FK)

dbo.EmpType TypeID(PK)| 类型

TypeID:仅在dbo.EmpType中自动增量

当我在Emptype中更新TypeID的值时,它需要存储在dbo的TypeID中.Emp我使用的SP不起作用。

Create Procedure bridge_Type( @EmpID INT, @Name varchar(50), @Mob2 numeric(10,0), @Email varchar(50), @Type varchar(50) ) AS DECLARE @TYPEID int Set NOCOUNT OFF BEGIN TRANSACTION Insert into dbo.Emp VALUES (@EmpID, @Name, @Mob2, @Email, @TYPEID) IF @@ERROR  0 BEGIN ROLLBACK RETURN END INSERT INTO dbo.EmpType VALUES (@Type) IF @@ERROR  0 BEGIN ROLLBACK RETURN END declare @id int SET @id= @TYPEID; Update Dbo.Emp Set @TYPEID= (Select TypeID from dbo.EmpType WHERE TypeID=@typeID) COMMIT 

尝试此SP,这将首先插入EmpType,并从SCOPE_IDENTITY()获取插入的标识值,然后插入emp。

 Create Procedure bridge_Type( @EmpID INT, @Name varchar(50), @Mob2 numeric(10,0), @Email varchar(50), @Type varchar(50) ) AS DECLARE @TYPEID int Set NOCOUNT OFF BEGIN TRANSACTION INSERT INTO dbo.EmpType VALUES (@Type) SET @TYPEID = SCOPE_IDENTITY() IF @@ERROR <> 0 BEGIN ROLLBACK RETURN END Insert into dbo.Emp VALUES (@EmpID, @Name, @Mob2, @Email, @TYPEID) IF @@ERROR <> 0 BEGIN ROLLBACK RETURN END COMMIT 

不是100%肯定你为什么要更新EmpType表中的typeID(特别是因为它是一个自动增量键),但是,你可以看看更新你的FK约束为’更新级联’:

何时使用“ON UPDATE CASCADE”

https://msdn.microsoft.com/en-us/library/aa933119(v=sql.80).aspx

上述就是C#学习教程:将值传递给一个表并在父表中更新分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1009786.html

(0)
上一篇 2021年12月29日
下一篇 2021年12月29日

精彩推荐