none
Azure-SQL-Datenbank Tabellen bearbeiten

    Frage

  • Hallo,

    ich kenne mich mit dem Thema noch nicht gut aus und hab jetzt ein hoffentlich kleines Problem.

    Ich habe hier eine kleine SQL-Datenbank (SQL Server Express 2012), die ich über Azure-SQL auf insgesamt fünf Clients synchronisiere. Dies funktioniert soweit problemlos.

    Jetzt muss ich in der Datenbank bei einigen Tabellen Spalten hinzufügen/umbenennen/löschen. Ich habe das zunächst auf meiner lokalen SQL-DB gemacht. Wenn ich nun im Azure Portal bei den Synchronisierungsregeln meine lokale DB aufrufe, das Schema aktualisiere, alles auswähle und dann speichern will, bekomme ich Fehlermeldungen (changing of datatype is not supported etc. (ich habe aber keine Dateitypen geändert, da ich weiß, dass dies nicht unterstüzt wird)).

    Anschließend habe ich versucht, über SMMS zu verbinden, das hat auch geklappt, allerdings gibt es bei den Tabellen die Entwerfen-Option nicht.

    Muss ich beim Verbinden mit SMMS noch was beachten? Ich habe mal was von Registered Server gelesen. Geht dann Entwerfen? Oder welche anderen Möglichkeiten gibt es?

    Vielen Dank für eure Hilfe.

    Freitag, 28. März 2014 11:47

Antworten

Alle Antworten

  • Hallo,

    wenn man mit SSMS an eine Azure SQL Datenbank verbunden ist, kann man keinen der GUI Designer verwenden, auch Features wie "Edit TOP 200 Rows" gibt es nicht. Alle Änderungen am Design oder den Daten muss per T-SQL Befehlen erfolgen.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Freitag, 28. März 2014 12:46
  • OK, danke. Ich habe jetzt im SMMS mittels ALTER TABLE einige Spalten neu hinzugefügt und ansonsten nichts geändert.

    Anschließend im Azure Portal die automatische Sync deaktiviert und das Schema aktualisiert, die neuen Spalten werden angezeigt. Wenn ich das dann Speichern will bekomme ich zuerst folgenden Fehler:

    Changing the data type of a column in the dataset definition is not supported and changing the size of a column is only supported on binary and string types. The column changed is Geb_Datum. TracingId=15d21efb-5554-84ec-8407-c12a76257ef4

    Die Spalte Geb_Datum wird jetzt als datetime2 geführt, war bisher aber datetime und ich habe das nicht geändert. Gibt es dafür eine Erklärung?

    Wenn ich Geb_Datum rausnehme, kommt folgende Meldung:

    The sync group is not in a valid state for re-provisioning. The sync group cannot be re-provisioned if members are currently provisioning, re-provisioning, de-provisioning, canceling sync, synchronizing, or have local agents that do not support re-provisioning. TracingId=0dc649b5-d41f-85ed-b85d-efb7e6a1b12b

    Momentan sind zwei der vier Sync Agents offline. Hat es damit zutun?

    Bitte um Hilfe. Danke!

    Montag, 31. März 2014 07:17
  • Hallo,

    ich habe jetzt die Agents, die offline sind aus der Gruppe entfernt, so dass obenstehende Fehler nicht mehr erscheinen, dafür bekomme ich jetzt einen neuen Fehler:

    Database re-provisioning failed with the exception "SqlException Error Code: -2146232060 - SqlError Number:207, Message: Ungültiger Spaltenname 'Kunde_Name'. SqlError Number:207, Message: Ungültiger Spaltenname 'Rechnung_gestellt'. SqlError Number:207, Message: Ungültiger Spaltenname 'Rechnung_bezahlt'. SqlError Number:207, Message: Ungültiger Spaltenname 'Kunde_Name'. SqlError Number:207, Message: Ungültiger Spaltenname 'Rechnung_gestellt'. SqlError Number:207, Message: Ungültiger Spaltenname 'Rechnung_bezahlt'. "    Weitere Informationen erhalten Sie, wenn Sie dem Kundensupport die Ablaufverfolgungs-ID '1e1e1f62-9c04-4f0a-bf32-22f0ed2e1fad' bereitstellen.

    Dazu hier noch den Eintrag aus dem Eventlog:

    id:DbProvider_SqlSyncScopeProvisioning_Error, rId:, sId:cc009538-29a6-4980-8db6-98fe520626b6, agentId:cb734c59-3484-41ed-8002-dec8cf7e21b4, agentInstanceId:1aa5a36e-0dfb-4ff1-841a-c298d2e77fe7, syncGroupId:9d439cdd-de14-4e4d-a799-8a7fa518f533, syncGroupMemberId:dd2d6cdf-fdb3-4ff8-8ab5-8e639c35af47, hubDbId:d5c5615a-6f55-484a-8c76-cf335989fa41, tracingId:b5f0eb23-1ade-437b-af33-a1960ebd1c23, databaseId:a9c5ba71-a7b0-4ffe-ab8d-10b6006fc282, sqlAzureActivityId:00000000-0000-0000-0000-000000000000, e:'Type=System.Data.SqlClient.SqlException,Message=Ungültiger Spaltenname 'Kunde_Name'.
    Ungültiger Spaltenname 'Rechnung_gestellt'.
    Ungültiger Spaltenname 'Rechnung_bezahlt'.
    Ungültiger Spaltenname 'Kunde_Name'.
    Ungültiger Spaltenname 'Rechnung_gestellt'.
    Ungültiger Spaltenname 'Rechnung_bezahlt'.,Source=.Net SqlClient Data Provider,StackTrace=   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 Microsoft.Synchronization.Data.SqlServer.SqlSyncTrackingTableHelper.UpdateTrackingTableWhereColumnsNotNullInBaseTable(SqlConnection connection, SqlTransaction transaction, DbSyncColumnDescription[] addedColumns, DbSyncColumnDescription[] modifiedColumns, Int32 tableObjectId, SqlSyncMarkerTableHelper markerHelper)
       bei Microsoft.Synchronization.Data.SqlServer.SqlSyncTableProvisioning.ReApply(SqlTransaction trans, SqlSyncProviderAdapterConfiguration oldConfiguration)
       bei Microsoft.Synchronization.Data.SqlServer.SqlSyncScopeProvisioning.ReApplyScope(SqlConnection connection)
       bei Microsoft.Synchronization.Data.SqlServer.SqlSyncScopeProvisioning.ReApplyInternal(SqlConnection connection)
       bei Microsoft.Synchronization.Data.SqlServer.SqlSyncScopeProvisioning.ReApply(),', eType:'Type=System.Data.SqlClient.SqlException', eMessage:'Message=Ungültiger Spaltenname 'Kunde_Name'.
    Ungültiger Spaltenname 'Rechnung_gestellt'.
    Ungültiger Spaltenname 'Rechnung_bezahlt'.
    Ungültiger Spaltenname 'Kunde_Name'.
    Ungültiger Spaltenname 'Rechnung_gestellt'.
    Ungültiger Spaltenname 'Rechnung_bezahlt'.' Error Code: -2146232060 - SqlError Number:207, Message: Ungültiger Spaltenname 'Kunde_Name'.. SqlError Number:207, Message: Ungültiger Spaltenname 'Rechnung_gestellt'.. SqlError Number:207, Message: Ungültiger Spaltenname 'Rechnung_bezahlt'.. SqlError Number:207, Message: Ungültiger Spaltenname 'Kunde_Name'.. SqlError Number:207, Message: Ungültiger Spaltenname 'Rechnung_gestellt'.. SqlError Number:207, Message: Ungültiger Spaltenname 'Rechnung_bezahlt'.. , eTypeInner:, eMessageInner:

    Die Meldung betrifft die neu hinzugekommenen Spalten. Entferne ich diese aus der Sync-Regel wieder, dann klappt die Provisionierung und der Sync.

    Bin da ziemlich ratlos.

    VG

    Montag, 31. März 2014 10:55