Ich habe einige temporäre Tabellen in SQL Azure erstellt, aber ich kann nicht herausfinden, wie sie geändert werden. Was ist der beste Ansatz, um neue Spalten hinzuzufügen oder bestehende zu ändern?Wie ändern Sie eine temporäre Tabelle in SQL Server 2016 oder Azure?
Antwort
MSDN viele Beispiele hat, in früheren Versionen von CTP, man kann mit aus Temporal Tabelle ändern system_versioning Einstellung mit CTP3 off.But starten, können Sie dies tun ... Hier sind einige Beispiele ..
ALTER TABLE dbo.Department
ALTER COLUMN DeptName varchar(100);
ALTER TABLE dbo.Department
ADD WebAddress nvarchar(255) NOT NULL
CONSTRAINT DF_WebAddress DEFAULT 'www.mycompany.com';
ALTER TABLE dbo.Department
ADD TempColumn INT;
GO
ALTER TABLE dbo.Department
DROP COLUMN TempColumn;
/* Setting IsHidden property for period columns.
Use ALTER COLUMN <period_column> DROP HIDDEN to clear IsHidden flag */
ALTER TABLE dbo.Department
ALTER COLUMN SysStartTime ADD HIDDEN;
ALTER TABLE dbo.Department
ALTER COLUMN SysEndTime ADD HIDDEN;
MSDN empfiehlt auch in einer Transaktion jede Regelung Änderung zu tun wie unten ..
BEGIN TRAN
---set system versioning to off
ALTER TABLE [dbo].[CompanyLocation] SET (SYSTEM_VERSIONING = OFF);
ALTER TABLE [CompanyLocation] ADD Cntr INT IDENTITY (1,1);
ALTER TABLE [dbo].[CompanyLocationHistory] ADD Cntr INT NOT NULL DEFAULT 0;
--specifying history table is needed with out which ,SQL adds a new history table
ALTER TABLE [dbo].[CompanyLocation]
SET
(
SYSTEM_VERSIONING = ON (HISTORY_TABLE = [dbo].[CompanyLocationHistory])
);
COMMIT ;
Sie fragen sich vielleicht, warum wir Versionierung off einstellen System benötigen, wie ich oben sagte er mit heraus erfolgen kann es mit ctp3.0 beginnen, dies wegen der wenigen Einschränkungen ist ..
Sie können nicht Verwenden Sie direkt ALTER für die folgenden Schemaänderungen. Legen Sie für diese Arten von Änderungen SYSTEM_VERSIONING = OFF fest.
sein
eine berechnete Spalte Hinzufügen
eine IDENTITY Spalte
Hinzufügen einer Spalte mit geringer Dichte oder das Ändern vorhandenen Spalte SPARSEwhen werden Hinzufügen der Verlaufstabelle wird auf DATA_COMPRESSION = PAGE oder DATA_COMPRESSION = ROW, das ist der Standardwert für die Verlaufstabelle.
ein column_set Hinzufügen
eine ROWGUIDCOL Spalte Hinzufügen oder Ändern vorhandene Spalte ROWGUIDCOL
Über Skripte.
Die Welt kommt langsam mit DevOps zurecht, und wie grafische Benutzeroberflächen für den Umgang mit schnellen Änderungen nicht wirklich hilfreich sind.
Jedes Änderungsskript und jede Änderung sollte in der Versionskontrolle gespeichert und für die moderne, cloudbasierte Realität ausgeführt werden, was im Grunde das bedeutet, was wir mit einem einfachen Designer machen konnten, ist etwas, was wir normalerweise als Skript schreiben das kann auf einen Cluster von Datenbanken angewendet werden, um die Testumgebung usw. neu aufzubauen.
Ich weiß, es ist nicht die witzigste Antwort, aber darauf vorbereitet zu sein, ist entscheidend für Ihre zukünftigen Fähigkeiten.
Es gibt zwei Möglichkeiten zeitliche Tabellen zu ändern:
- Via Transact-SQL-Skript. Weitere Informationen finden Sie unter https://msdn.microsoft.com/en-us/library/mt591016.aspx
- Verwenden von SQL Server-Datentools, die in Visual Studio integriert sind. Es ist praktisch, wenn Sie auf die Version der Datenbank-Skripte in Versionskontrollsystem (TFS zum Beispiel) benötigen: https://msdn.microsoft.com/en-us/library/mt204009.aspx
Danke, Borko Novakovic (MSFT)