Hallo,
ich wollte gerade bei uns das Update machen auf die 1.0.9.1.
1. Setup ausgeführt
2. easybusiness DB ausgewählt
3. angemeldet
4. DB Sicherung erstellt
5. angemeldet
6. Update durchgeführt ohne Fehler
7. Mandant gewechselt
8. angemeldet
9. DB Sicherung durchgeführt
10. angemeldet beim Mandant
11. Update der Datenbank brachte folgenden Fehler und bricht Update ab
Könnte mir vielleicht jemand helfen was hier schiefgelaufen ist?
ich wollte gerade bei uns das Update machen auf die 1.0.9.1.
1. Setup ausgeführt
2. easybusiness DB ausgewählt
3. angemeldet
4. DB Sicherung erstellt
5. angemeldet
6. Update durchgeführt ohne Fehler
7. Mandant gewechselt
8. angemeldet
9. DB Sicherung durchgeführt
10. angemeldet beim Mandant
11. Update der Datenbank brachte folgenden Fehler und bricht Update ab
Code:
Unbehandelte Ausnahme #48308C0895E22D3 vom Typ System.Reflection.TargetInvocationException in System.Object InvokeMethod(System.Object, System.Object[], System.Signature, Boolean)
System.Reflection.TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht. ---> System.Data.SqlClient.SqlException: In der Datenbank ist bereits ein Objekt mit dem Namen 'tLagerbestandBackup' vorhanden.
bei System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
bei System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
bei System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
bei System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
bei System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
bei System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
bei System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
bei jtlDatabase.DB.zPyGYOOeK3[T](SqlConnection , Func`1 func)
bei jtlDatabase.DB.executeLongRunningCommandSQL(String cSqlCommand)
bei jtlCore.Classes.Update.Tasks.VordemUpdate.Lagerbestandmerken.Run()
bei jtlCore.Classes.Update.Updater.kKK69RkGvxO(IPreUpdateTask )
bei System.Collections.Generic.List`1.ForEach(Action`1 action)
bei jtlCore.Classes.Update.Updater.uKF69CNWcCe()
bei jtlCore.Classes.Update.Updater.Run(IntPtr hWnd)
bei jtlCore.WPF.Login.LoginViewModelBase.v4UrLcvayxS()
bei jtlCore.WPF.Login.LoginViewModelBase.dl5rL0gIMbj()
bei jtlCore.WPF.Login.LoginViewModelBase.Wh1rLykmXMQ()
bei jtlCore.WPF.Login.LoginViewModelBase.RDErLJeCXq0(Object )
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
bei System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
bei GalaSoft.MvvmLight.Helpers.WeakAction`1.Execute(T parameter)
bei GalaSoft.MvvmLight.CommandWpf.RelayCommand`1.Execute(Object parameter)
bei MS.Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(ICommandSource commandSource, Boolean userInitiated)
bei System.Windows.Controls.Primitives.ButtonBase.OnClick()
bei System.Windows.Controls.Button.OnClick()
bei System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
bei System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)
bei System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
bei System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
bei System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
bei System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
bei System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
bei System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
bei System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
bei System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
bei System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
bei System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
bei System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
bei System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
bei System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
bei System.Windows.Input.InputManager.ProcessStagingArea()
bei System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
bei System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
bei System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
bei System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
bei System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
bei MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
bei MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
bei MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
bei System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
bei MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.RunDialog(Form form)
bei System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
bei jtlCore.WPF.Login.WawiLoginController.LoginWithGui(WpfHostController controller)
bei jtlCore.WPF.Login.LoginController.OpenLogin(String dbProfil, String dbName, String wawiUsername, String wawiPassword, Boolean passwordEncrypted, Boolean showGui)
bei JTLwawi.CJTLwawi.JTL_Login(String dbProfil, String dbName, String wawiUsername, String wawiPassword, Boolean showGui, String SRV, String DBU, String DBP, String& status, String& connection, Int32 passwordEncrypted)
System.Object = <null>
Unbehandelte Ausnahme #9B8CA809F64D3EF vom Typ System.Data.SqlClient.SqlException in Void OnError(System.Data.SqlClient.SqlException, Boolean, System.Action`1[System.Action]): In der Datenbank ist bereits ein Objekt mit dem Namen 'tLagerbestandBackup' vorhanden.
SQL-Fehler:
Source: .Net SqlClient Data Provider
Number: 2714
State: 6
Class: 16 (Anwendungsproblem)
Server: JTL-SRV1\JTLWAWI
Message: In der Datenbank ist bereits ein Objekt mit dem Namen 'tLagerbestandBackup' vorhanden.
Procedure:
LineNumber: 5
HelpLink.ProdName = Microsoft SQL Server
HelpLink.ProdVer = 12.00.4213
HelpLink.EvtSrc = MSSQLServer
HelpLink.EvtID = 2714
HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
HelpLink.LinkId = 20476
CommandText =
--
-- dbo.tLagerbestandBackup erstellen
--
CREATE TABLE dbo.tLagerbestandBackup
(
kArtikel INT NOT NULL,
fLagerbestand DECIMAL(28, 15) NOT NULL,
dErstellt DATETIME NOT NULL,
cVersion VARCHAR(8)
);
LineNr = 5
Codefragment = (
Connection-String = DataSource=JTL-SRV1\JTLWAWI, InitialCatalog=Mandant_1, UserID=sa
2016-02-05T18:17:24 DEBUG - [SQL] SELECT (CASE WHEN SERVERPROPERTY('MACHINENAME') = HOST_NAME() THEN 'local' ELSE 'remote' END) AS instance
2016-02-05T18:17:24 DEBUG - [SQL] Dauer: 0ms
2016-02-05T18:17:25 DEBUG - [SQL] SELECT compatibility_level FROM sys.databases WHERE name = @name
@name = 'Mandant_1'
2016-02-05T18:17:25 DEBUG - [SQL] Dauer: 0ms
2016-02-05T18:17:25 DEBUG - [SQL] SELECT compatibility_level FROM sys.databases WHERE name = @name
@name = 'Mandant_1'
2016-02-05T18:17:25 DEBUG - [SQL] Dauer: 0ms
2016-02-05T18:17:25 DEBUG - [SQL] SELECT compatibility_level FROM sys.databases WHERE name = @name
@name = 'Mandant_1'
2016-02-05T18:17:25 DEBUG - [SQL] Dauer: 0ms
2016-02-05T18:17:25 DEBUG - [TableTable] Invalidate: [tversion]
2016-02-05T18:17:25 DEBUG - [TableTable] Eintrag TableCache.tversion entfernt - Removed
2016-02-05T18:17:26 DEBUG - [SQL] SELECT TOP(1) cVersion FROM tVersion
2016-02-05T18:17:26 DEBUG - [SQL] Dauer: 1ms
2016-02-05T18:17:26 DEBUG - [TableTable] Invalidate: *
2016-02-05T18:17:26 DEBUG - [SQL] SELECT * FROM [tversion]
2016-02-05T18:17:26 DEBUG - [SQL] Dauer: 0ms
2016-02-05T18:17:26 DEBUG - [SQL] IF EXISTS(SELECT 1 FROM [tOptions] WHERE cKey = @cKey) BEGIN
UPDATE tOptions SET cValue = @cValue WHERE cKey = @cKey;
END ELSE BEGIN
INSERT INTO tOptions (cKey, cValue) VALUES (@cKey, @cValue);
END
@cKey = 'UpdateGestartet',
@cValue = 'MICHA-NOTEBOOK'
2016-02-05T18:17:26 DEBUG - [SQL] Dauer: 16ms
2016-02-05T18:17:26 DEBUG - [TableTable] Invalidate: [tOptions]
2016-02-05T18:17:26 DEBUG - [TableTable] Eintrag TableCache.tOptions entfernt - Removed
2016-02-05T18:17:26 DEBUG - [SQL] DECLARE @sql NVARCHAR(max);
DECLARE @collation NVARCHAR(255);
DECLARE @table NVARCHAR(255);
DECLARE @column NVARCHAR(255);
DECLARE @typ NVARCHAR(255);
DECLARE @null NVARCHAR(10);
DECLARE @object_id INT;
DECLARE @column_id INT;
SELECT @collation = CONVERT (varchar, DATABASEPROPERTYEX(DB_NAME(),'collation'));
DECLARE cColumns CURSOR LOCAL FAST_FORWARD FOR
SELECT sys.columns.object_id,
sys.columns.column_id,
sys.schemas.name + '.' + sys.tables.name AS tableName,
sys.columns.name AS columnname,
CASE WHEN sys.columns.max_length = -1
THEN sys.types.name + N'(max)'
ELSE
CASE WHEN sys.types.name = 'text' OR sys.types.name = 'ntext'
THEN sys.types.name
ELSE sys.types.name + N'(' + CAST(sys.columns.max_length AS VARCHAR(10)) + N')'
END
END AS typ,
CASE WHEN sys.columns.is_nullable = 1
THEN N'NULL'
ELSE N'NOT NULL'
END AS isNullable
FROM sys.columns
JOIN sys.types ON types.system_type_id = columns.system_type_id
JOIN sys.tables ON tables.object_id = columns.object_id
JOIN sys.schemas ON schemas.schema_id = tables.schema_id
WHERE sys.types.name IN('char', 'nvarchar', 'varchar', 'text', 'ntext', 'nchar')
AND sys.columns.collation_name <> @collation
OPEN cColumns;
FETCH NEXT FROM cColumns INTO @object_id, @column_id, @table, @column, @typ, @null;
WHILE @@FETCH_STATUS = 0
BEGIN
--
-- Indizes SQL schreiben
--
DECLARE @indexDrop NVARCHAR(MAX);
DECLARE @indexCreate NVARCHAR(MAX);
DECLARE @name NVARCHAR(400);
DECLARE @columns NVARCHAR(MAX);
DECLARE @include NVARCHAR(MAX);
DECLARE @index_id INT;
DECLARE @pk INT;
DECLARE @uq INT;
SET @indexDrop = N' ';
SET @indexCreate = N' ';
DECLARE cIndex CURSOR LOCAL FAST_FORWARD FOR
SELECT sys.indexes.name AS indexName,
sys.indexes.index_id,
sys.indexes.is_unique_constraint,
sys.indexes.is_primary_key
FROM sys.indexes
JOIN sys.index_columns ON index_columns.index_id = indexes.index_id AND index_columns.object_id = indexes.object_id
WHERE sys.index_columns.object_id = @object_id
AND sys.index_columns.column_id = @column_id
OPEN cIndex;
FETCH NEXT FROM cIndex INTO @name, @index_id, @uq, @pk
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @columns = STUFF(
( SELECT ', ' + c.name
FROM sys.index_columns AS ic
JOIN sys.columns AS c ON c.column_id = ic.column_id
AND c.object_id = ic.object_id
WHERE ic.index_id = @index_id
AND ic.object_id = @object_id
AND ic.is_included_column = 0
ORDER BY ic.key_ordinal
FOR XML PATH('')
), 1,2,''),
@include = STUFF(
( SELECT ', ' + c.name
FROM sys.index_columns AS ic
JOIN sys.columns AS c ON c.column_id = ic.column_id
AND c.object_id = ic.object_id
WHERE ic.index_id = @index_id
AND ic.object_id = @object_id
AND ic.is_included_column = 1
ORDER BY ic.key_ordinal
FOR XML PATH('')
), 1,2,'')
IF(@pk = 0 AND @uq = 0)
BEGIN
SET @indexDrop = @indexDrop + N'IF EXISTS (SELECT * FROM sys.indexes WHERE name = '''+ @name + N''')
BEGIN
DROP INDEX ' + @name + N' ON ' + @table + N';
END ';
SET @indexCreate = @indexCreate + N'CREATE INDEX ' + @name + N' ON ' + @table + N'(' + @columns + N')' +
CASE WHEN @include IS NOT NULL
THEN N'INCLUDE (' + @include + N');'
ELSE N';'
END;
END
ELSE IF (@pk = 1 OR @uq = 1)
BEGIN
SET @indexDrop = @indexDrop + N'IF EXISTS (SELECT * FROM sys.indexes WHERE name = '''+ @name + N''')
BEGIN
ALTER TABLE ' + @table + N' DROP CONSTRAINT ' + @name + N';
END ';
IF(@pk = 1)
BEGIN
SET @indexCreate = @indexCreate + N'ALTER TABLE ' + @table + N' ADD CONSTRAINT ' + @name + N'
PRIMARY KEY(' + @columns + N'); ';
END
IF(@uq = 1)
BEGIN
SET @indexCreate = @indexCreate + N'ALTER TABLE ' + @table + N' ADD CONSTRAINT ' + @name + N'
UNIQUE(' + @columns + N'); ';
END
END
FETCH NEXT FROM cIndex INTO @name, @index_id, @uq, @pk
END;
CLOSE cIndex;
DEALLOCATE cIndex;
--
-- Statistiken SQL schreiben
--
DECLARE @dropStat NVARCHAR(MAX);
SET @dropStat = N' ';
DECLARE @stat NVARCHAR(400);
DECLARE cStats CURSOR LOCAL FAST_FORWARD FOR
SELECT sys.stats.name
FROM sys.stats
WHERE sys.stats.object_id = @object_id
AND sys.stats.user_created = 1;
OPEN cStats;
FETCH NEXT FROM cStats INTO @stat;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @dropStat = @dropStat + N' IF EXISTS (SELECT * FROM sys.stats WHERE name = '''+ @stat + N''') DROP STATISTICS ' + @table + N'.' + @stat +'; ';
FETCH NEXT FROM cStats INTO @stat;
END;
CLOSE cStats;
DEALLOCATE cStats;
--
-- Check Constraints SQL Code erzeugen
--
DECLARE @checkDrop NVARCHAR(MAX);
DECLARE @checkCreate NVARCHAR(MAX);
SET @checkCreate = N' ';
SET @checkDrop = N' ';
DECLARE @constraint NVARCHAR(255);
DECLARE @condition NVARCHAR(500);
DECLARE cCheckConstraint CURSOR LOCAL FAST_FORWARD FOR
SELECT sys.check_constraints.name,
sys.check_constraints.definition
FROM sys.check_constraints
JOIN sys.columns ON sys.check_constraints.parent_column_id = sys.columns.column_id
AND sys.check_constraints.parent_object_id = sys.columns.object_id
WHERE sys.columns.object_id = @object_id
AND sys.columns.column_id = @column_id
OPEN cCheckConstraint;
FETCH NEXT FROM cCheckConstraint INTO @constraint, @condition
WHILE @@FETCH_STATUS = 0
BEGIN
SET @checkDrop = @checkDrop + N' IF EXISTS (SELECT * FROM sys.check_constraints WHERE name = '''+ @constraint + N''')
BEGIN
ALTER TABLE ' + @table + N' DROP CONSTRAINT ' + @constraint + N';
END ';
SET @checkCreate = @checkCreate + N' ALTER TABLE ' + @table + N' ADD CONSTRAINT ' + @constraint + N' CHECK(' + @condition + N'); ';
FETCH NEXT FROM cCheckConstraint INTO @constraint, @condition
END
CLOSE cCheckConstraint;
DEALLOCATE cCheckConstraint;
--
-- Code ausführen
--
SET @sql = N'ALTER TABLE ' + @table +
N' ALTER COLUMN ' + @column + N' ' + @typ +
N' COLLATE ' + @collation + N' ' + @null
EXEC sp_executesql @indexDrop;
EXEC sp_executesql @checkDrop;
EXEC sp_executesql @dropStat;
EXEC sp_executesql @sql;
EXEC sp_executesql @checkCreate;
EXEC sp_executesql @indexCreate;
FETCH NEXT FROM cColumns INTO @object_id, @column_id, @table, @column, @typ, @null;
END
CLOSE cColumns;
DEALLOCATE cColumns;
2016-02-05T18:17:26 DEBUG - [SQL] Dauer: 244ms
2016-02-05T18:17:26 DEBUG - [SQL]
--
-- Sicherstellen, dass die Tabelle dbo.tLagerbestandBackup nicht vorhanden ist.
--
BEGIN TRY
DROP TABLE dbo.tLagerbestandBackup;
END TRY
BEGIN CATCH
END CATCH
2016-02-05T18:17:26 DEBUG - [SQL] Dauer: 0ms
2016-02-05T18:17:26 DEBUG - [SQL]
--
-- dbo.tLagerbestandBackup erstellen
--
CREATE TABLE dbo.tLagerbestandBackup
(
kArtikel INT NOT NULL,
fLagerbestand DECIMAL(28, 15) NOT NULL,
dErstellt DATETIME NOT NULL,
cVersion VARCHAR(8)
);
2016-02-05T18:17:26 DEBUG - [SQL] Dauer: 7ms
Zeitstempel: 2016-02-05T18:19:59
Locale: German (Germany)
Locale: German (Germany)
Version: 1.0.9.1
Plattform: Wawi
Versionshash: 6BF48CF4
Prozessname: System.Diagnostics.Process (JTL-wawi)
Physikalischer Speicher: 198955008 / Peak: 333656064
Basispriorität: 8
Prioritätsklasse: Normal
CPU-Zeit (User): 0:00:17,171875
CPU-Zeit (System): 0:00:02,859375
Page-Size (Sytem): 976376 / Peak: 276529152
Page-Size: 136347648 / Peak: 276529152
Offene Handles: 926
Könnte mir vielleicht jemand helfen was hier schiefgelaufen ist?