Forum: SQL |
Thema:
Re: Feld mit ALTER TABLE einfügen |
Von:
Ansgar Sommer (
07.03.2005 16:34) |
Hallo Martin,
du kannst über den Enterprise manager die dei Änderung an der Tabelle machen
und dann kannst Du folgendes Script speichern bzw. dir Ausgeben.
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
CREATE TABLE dbo.Tmp_Suppliers
(
SupplierID int NOT NULL IDENTITY (1, 1),
CompanyName nvarchar(40) NOT NULL,
ContactName nvarchar(30) NULL,
ContactTitle nvarchar(30) NULL,
Address nvarchar(60) NULL,
City nvarchar(15) NULL,
/*
das ddd feld ist neu eingefügt worden
*/
ddd char(10) NULL,
Region nvarchar(15) NULL,
PostalCode nvarchar(10) NULL,
Country nvarchar(15) NULL,
Phone nvarchar(24) NULL,
Fax nvarchar(24) NULL,
HomePage ntext NULL
) ON [PRIMARY]
TEXTIMAGE_ON [PRIMARY]
GO
SET IDENTITY_INSERT dbo.Tmp_Suppliers ON
GO
IF EXISTS(SELECT * FROM dbo.Suppliers)
EXEC('INSERT INTO dbo.Tmp_Suppliers (SupplierID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax, HomePage)
SELECT SupplierID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax, HomePage FROM dbo.Suppliers TABLOCKX')
GO
SET IDENTITY_INSERT dbo.Tmp_Suppliers OFF
GO
ALTER TABLE dbo.Products
DROP CONSTRAINT FK_Products_Suppliers
GO
DROP TABLE dbo.Suppliers
GO
EXECUTE sp_rename N'dbo.Tmp_Suppliers', N'Suppliers', 'OBJECT'
GO
ALTER TABLE dbo.Suppliers ADD CONSTRAINT
PK_Suppliers PRIMARY KEY CLUSTERED
(
SupplierID
) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX CompanyName ON dbo.Suppliers
(
CompanyName
) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX PostalCode ON dbo.Suppliers
(
PostalCode
) ON [PRIMARY]
GO
GRANT REFERENCES ON dbo.Suppliers TO public AS dbo
GRANT SELECT ON dbo.Suppliers TO public AS dbo
GRANT UPDATE ON dbo.Suppliers TO public AS dbo
GRANT INSERT ON dbo.Suppliers TO public AS dbo
GRANT DELETE ON dbo.Suppliers TO public AS dbo
COMMIT
BEGIN TRANSACTION
ALTER TABLE dbo.Products WITH NOCHECK ADD CONSTRAINT
FK_Products_Suppliers FOREIGN KEY
(
SupplierID
) REFERENCES dbo.Suppliers
(
SupplierID
)
GO
COMMIT
Gruß
Ansgar Sommer
Ansgar Sommer
Betreff |
Von |
Datum |
|
  |
Re: Feld mit ALTER TABLE einfügen
Hallo Ansgar,<br><br>danke für die ausführliche Info.<br>Leider steht für diesen Fall der Enterprise-Manager nicht zur Verfügung, da das ganze über eine reine Web-Schnittstelle als SQL-Kommando abgesetzt... |
 |
 |
 |
|
|
Martin
Schmidt
|
09.03.2005 13:52 |
|
  |
Re: Feld mit ALTER TABLE einfügen
Hallo Martin,<br><br>ich nutze es im Code auch immer über "einfach" alter table.<br><br>Der Enterprise Manager generiert automatisch das SQL script, ich nutze das auch nur falls es umbedingt nötig ist.<br>Die... |
 |
 |
 |
|
|
Ansgar
Sommer
|
09.03.2005 15:17 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!