Ich habe diese Tabelle in Sql
und in Einsatz Form
meines Projektes doppelte Aktualisierung verhindern verhindern ich den Benutzer aus demselben hdateWie in gespeicherte SQL-Prozedur
RecID HDate HNumber HComb
----------------------------------------------
1 2017-1-30 1 12
3 2017-1-29 1 15
5 2017-1-30 2 12
6 2017-1-30 3 12
9 2017-1-30 4 12
Aber in Formular bearbeiten I don für Same hNummer Eingabe von‘ t wissen, wie das zu verhindern,
ich versuche, diesen Code in gespeicherten Prozedur aber für einige hNummer arbeiten, aber es hat einige andere hNummer verhindern in einem eigenen Datum
Create Procedure UpdCombHarByRecID
@RecID int,
@HarvestDate Date,
@HiveNumber int,
@HoneyComb Float,
as
if NOT Exists (Select * From tHoneyHarvest Where [email protected])
return 0
//there is no record to be updated
if Exists (Select * From tHoneyHarvest Where [email protected] AND
HiveNumber=HiveNumber And
[email protected])
// I hoped this should do the job
//(RecID is PrimaryKey and it is identity)
return 2
Update tHoneyHarvest
Set [email protected],
[email protected],
[email protected],
[email protected]
Where [email protected]
return 1
bearbeitet werden
jetzt wo ist das Problem?
Verwenden Sie ein * Single * UPDATE ... FROM ... WHERE-Anweisung, deren 'WHERE' Klausel eliminiert Duplikate. Die mehreren "Exists" -Anweisungen machen den Code schwerer lesbar und verständlich. –
@PanagiotisKanavos Benutzer kann Hnumber nicht ändern, aber HDate bearbeiten, ich möchte überprüfen, ob HNumber bereits einen Datensatz in neu bearbeiteten HDate hat, verhindern, dass alle Felder aktualisiert werden und nichts tun – SaraniO
HiveNumber = HiveNumber wird immer wahr sein. Sollte HiveNumber = @ HiveNumber sein? – Vijay