ALTER PROCEDURE testRaiseError
@Severity int =18
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
Raiserror('Test Raiserrror',@Severity,10)
END
meine Sys/Db admin & Developper Notitzen - wer Rechtschreibfehler findet darf sie behalten ... my Sys/Db Admin and developper notes - I don't care about typos
Thursday, January 27, 2011
Transaktionen und Fehlerbehandlung in TSQL
Beispiel Insert und Update in einer Transaktion, wenn eines fehlschlägt wird zurückgerollt und der Fehler weitergegeben
BEGIN TRAN T1
BEGIN TRY
--write all values to mcit.auditrail (@UserId)
INSERT INTO [AuditTrail] ([ActionType],[ObjectType],[ObjectId],[OldValues],[NewValues],[UserId])
SELECT 'Update','Products',Id,CONVERT(Nvarchar(MAX),Price),CONVERT(Nvarchar(MAX),Price*@PriceFact),@UserId
from product where [year]=@Year and SupplierGroupId=@SupplierGroupId and IsDeleted=0
update mcit.product set Price=Price*@PriceFact where [year]=@Year and SupplierGroupId=@SupplierGroupId and IsDeleted=0
END TRY
BEGIN CATCH
print 'Fehler in Transaktion aufgetreten - Rolle zurück'
ROLLBACK TRAN T1
DECLARE @MSG NVARCHAR(MAX) SET @MSG=ERROR_MESSAGE()
DECLARE @SEV INT SET @SEV=ERROR_SEVERITY()
DECLARE @STA INT SET @STA=ERROR_STATE()
RAISERROR (@MSG,@SEV,@STA)
RETURN
END CATCH
COMMIT TRAN T1
END
BEGIN TRAN T1
BEGIN TRY
--write all values to mcit.auditrail (@UserId)
INSERT INTO [AuditTrail] ([ActionType],[ObjectType],[ObjectId],[OldValues],[NewValues],[UserId])
SELECT 'Update','Products',Id,CONVERT(Nvarchar(MAX),Price),CONVERT(Nvarchar(MAX),Price*@PriceFact),@UserId
from product where [year]=@Year and SupplierGroupId=@SupplierGroupId and IsDeleted=0
update mcit.product set Price=Price*@PriceFact where [year]=@Year and SupplierGroupId=@SupplierGroupId and IsDeleted=0
END TRY
BEGIN CATCH
print 'Fehler in Transaktion aufgetreten - Rolle zurück'
ROLLBACK TRAN T1
DECLARE @MSG NVARCHAR(MAX) SET @MSG=ERROR_MESSAGE()
DECLARE @SEV INT SET @SEV=ERROR_SEVERITY()
DECLARE @STA INT SET @STA=ERROR_STATE()
RAISERROR (@MSG,@SEV,@STA)
RETURN
END CATCH
COMMIT TRAN T1
END
Monday, January 24, 2011
MSI entpacken mittels MSIEXEC
msiexec /a DATEINAME.msi /qn TARGETDIR="PFAD"
wichtig: Rargetidrpfad muss nicht existieren, darf aber nicht das msi file enthalten
wichtig: Rargetidrpfad muss nicht existieren, darf aber nicht das msi file enthalten
Subscribe to:
Posts (Atom)