Ciao ragazzi, ho 1 dubbio che spero mi possiate risolvere. Ho 1 stupidissima stored procedure:
che viene richiamata così:codice:ALTER PROCEDURE spCreaReferenteDaAliasEsistente ( @IDAlias int, @IDReferente int OUTPUT, @IDAzienda int ) AS Begin transaction INSERT INTO rAziendePersoneReferenti (IDPersona,IDAzienda) VALUES (@IDAlias,@IDAzienda) SET @IDReferente =SCOPE_IDENTITY() Commit transaction
Posso accedere tranquillamente al valore di IDReferente creato (la chiave primaria autoincrementale della tabella rAziendePersoneReferenti è IDReferente), ma purtroppo nella tabella mi vengono creati due record successivi con uguale IDAzienda e IDAlias).codice:Dim myConnectionString As String myConnectionString = "xxxxxxxxxxxxxxxxxxxxxxx" Dim myConnection As System.Data.SqlClient.SqlConnection = New Data.SqlClient.SqlConnection(myConnectionString) Dim cmd As New Data.SqlClient.SqlCommand("spCreaReferenteDaAliasEsistente", myConnection) cmd.CommandType = Data.CommandType.StoredProcedure cmd.Parameters.AddWithValue("@IDAzienda", Request.Params("IDAlias")) cmd.Parameters.AddWithValue("@IDAlias", Me.HiddenFieldIDPersona.Value) Dim workParam As Data.SqlClient.SqlParameter workParam = cmd.Parameters.Add("@IDReferente", Data.SqlDbType.Int, 32) workParam.Direction = Data.ParameterDirection.Output myConnection.Open() cmd.ExecuteNonQuery() myConnection.Close() Dim IDReferente As Integer = cmd.Parameters("@IDReferente").Value
La causa penso stia nella riga
perchè togliendola mi viene creato solo 1 record, ma purtroppo a me serve il parametro di output IDReferente per ulteriori elaborazioni. Perchè si verifica questo problema e come posso correggerlo? Grazie!codice:SET @IDReferente =SCOPE_IDENTITY()
![]()

Rispondi quotando
