Se me hace raro... tu variable id que pasas tiene valor?
Código SQL:
Ver originalALTER PROCEDURE [dbo].[sp_borra_t_competencia]
@id INT
AS
BEGIN
SET NoCount ON;
DELETE
FROM T_Competencia
WHERE
ID = @id
AND
ID NOT IN
(
SELECT DISTINCT id_competencia FROM gruporelacion
)
Print @@RowCount
END
Código vb:
Ver originalconexion = New SqlClient.SqlConnection("server=us;database=tienda s;Integrated Security=True")
Using cmd As New SqlClient.SqlCommand("sp_borra_t_competencia", conexion)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add(new SqlParameter("@id", SqlDbType.Int));
cmd.Parameters["@id"].Direction = ParameterDirection.Input;
cmd.Parameters["@id"].Value = id;
Dim rv As String
conexion.Open()
rv = cmd.ExecuteScalar().ToString()
conexion.Close()
If (Convert.ToInt32(rv) > 0) Then
MessageBox.Show("El registro no fue eliminado pues blah blah")
Else
MessageBox.Show("El registro ya no existe.")
End If
End Using
O puede que no esté llegando bien. Intenta esto. Saludos!

.