Tamam. here Daha önce bir SQL backend ile çalışmak için çok fazla yardım aldım ... sadece benim için değil: (çalıştığım küçük ofis için zaman saati çözümü, bu yüzden daha fazlası için geri dönüyorum)SQL TAMAMLAYICI GÜNCELLEŞTİRME SONUCU OLUŞTURDUĞUNDA YAZILIM TAMAMLAYINIZ
(- clockDate tarih değil boş PK
- userName varchar (50) değil boş PK
- clockIn süresi (0)
- koparma zamanı: Şu anda çalışıyorum
Benim tablo 6 sütundan oluşmaktadır 0)
- breakIn zamanı (0)
- CLocKOUT süresi (0)
Gerçi benim son soruya benim IF NOT EXISTS INSERT ELSE UPDATE
deyimi anladım, ama şimdi oldukça düz bir sorguda yerine, saklı yordam kullanmak çalışıyorum pencere, hiçbir başarı ile. Temel olarak, kullanıcının bir saatin hızlandırması no-brainer'tır. Ancak, kullanıcı saat alamıyorsa, ancak öğle yemeği için dışarı çıkarsa, ifadenin varolan bir satırı güncellemek yerine satırı oluşturması gerekir. kullanıcı Ben saklı yordam hala ifadenin INSERT
bölümünü çalıştırmak için çalışıyor, çünkü birincil anahtar ihlali olsun gün içinde saati DID Eğer
ALTER PROCEDURE dbo.BreakOut
(
@userName varchar(50)
)
AS
IF EXISTS (SELECT * FROM Clock WHERE clockDate = GETDATE() AND userName = @userName)
BEGIN
UPDATE Clock SET breakOut = GETDATE()
WHERE clockDate = GETDATE() AND userName = @userName
END
ELSE
BEGIN
INSERT INTO Clock (clockDate, userName, breakOut)
VALUES (GETDATE(), @userName, GETDATE())
END
İşte ... benim sorunum: Tamam işte benim saklı yordamı var ve asla UPDATE
satırını çalıştırmaz. Ben de aynı sonucu ile bir IF NOT EXISTS
ile ters çevrilmiş denedim. IF-ELSE'nin saklı bir prosedürde çalışması için ne işe yarar? Bu şekilde düşünebilir miyim ya da Merge
bildirimi okumak zorunda mıyım? Planım saklı yordamları, her iş istasyonunda basit bir Visual Basic programından çalıştırmaktır. Sadece bir zaman saati çözüm satın almak Belki kötü patronuma için kafamın :(aşkın alıyorum çok ucuz
DÜZENLEME:! düşüyorum !!
Yardımlarınız için teşekkür ederiz TÜM Bu sitedeki aşık, sorular cevaplar KADAR HIZLI olsun !!! İşte benim çalışma saklı işlemdir:?
ALTER PROCEDURE dbo.BreakOut
(
@userName varchar(50)
)
AS
IF EXISTS (SELECT * FROM Clock WHERE DateDiff(dd, GetDate(),clockDate) = 0 AND userName = @userName)
BEGIN
UPDATE Clock SET breakOut = GETDATE()
WHERE DateDiff(dd, GetDate(),clockDate) = 0 AND userName = @userName
END
ELSE
BEGIN
INSERT INTO Clock (clockDate, userName, breakOut)
VALUES (GETDATE(), @userName, GETDATE())
END
bu doğru mu, yoksa Yine TÜM çok teşekkür ederim daha geliştirilebilir !!!
Teşekkür ederiz @dash !! – tmhalbert