Ausgangsparameter, mit dem eine Zeile in derselben Tabelle eingefügt wird

Danke für deine Hilfe Guys

Ich arbeite an einem Asp.net-basierten Projekt und mein Erfordernis ist es, ein PARTNO mit der Kombination von MaterialType + ProductID und – 4digit Zufallszahl zu generieren

HINWEIS: ProductID ist Primärschlüssel und setzt auch auf Ausgangsparameter

zum Beispiel Wenn Materialart 500 ist und Produkt-ID generiert 55 und random keine generiert 5434, dann Teil nein werden 555-5434

Jetzt ist meine Frage, wie könnte ich partno in der gleichen Tabelle speichern, ich versuche so etwas

Connection.Open() Dim trn As SqlClient.SqlTransaction trn = Connection.BeginTransaction Using trn Dim sqlcode As New SqlParameter("@ProductID", Products.ProductID) sqlcode.Direction = ParameterDirection.InputOutput Using Command As New SqlCommand("Product_Write", Connection, trn) Command.CommandType = CommandType.StoredProcedure Command.Parameters.Add(sqlcode) Command.Parameters.AddWithValue("@MaterialType", Materialtype.MaterialTypeCode) Command.Parameters.AddWithValue("@CategoryID", category.CategoryId) Command.Parameters.AddWithValue("@ProductName", Products.ProductName) Command.Parameters.AddWithValue("@ProductDescription", Products.ProductDescription) Command.Parameters.AddWithValue("@ProductActive", Products.ProductActive) Command.Parameters.AddWithValue("@ProductImage", Products.ProductImage) Command.Parameters.AddWithValue("@PartNo", 0) Command.ExecuteNonQuery() Products.ProductID = CInt(sqlcode.Value) 'Insert the part no Dim random As New Random() Dim value As Integer = random.Next(9999) Dim PartNo As String = CType((Materialtype.MaterialTypeCode + Products.ProductID).ToString + "-" + value.ToString, String) 'Dont know what to do trn.Commit() Connection.Close() End Using End Using End Using Return Products End Function ALTER PROCEDURE [dbo].[Product_Write] @ProductID bigint OUTPUT, @MaterialType int, @CategoryID bigint, @ProductName VARCHAR(MAX), @ProductDescription VARCHAR(MAX), @ProductActive Bit, @ProductImage VARCHAR(MAX), @PartNo VARCHAR(30) AS IF (@ProductID=0) BEGIN INSERT INTO T_Product( MaterialType, CategoryID, ProductName, ProductDescription, ProductActive, ProductImage, PartNo) VALUES( @MaterialType, @CategoryID, @ProductName, @ProductDescription, @ProductActive, @ProductImage, @PartNo) SET @ProductID=SCOPE_IDENTITY() END ELSE UPDATE T_Product SET MaterialType=@MaterialType, CategoryID=@CategoryID, ProductName=@ProductName, ProductDescription=@ProductDescription, ProductActive=@ProductActive, ProductImage=@ProductImage, PartNo=@PartNo WHERE ProductID=@ProductID Please help me out 

Vielen Dank

Wenn du die gespeicherte Prozedur aktualisieren kannst, brauchst du etwas in dieser Richtung

 declare @id int set @id = SCOPE_IDENTITY() UPDATE <Table> Set PartNo = MaterialType + convert(varchar(max),@id) + convert(varchar(4),CEILING(9999*RAND())) Where ID = @id