Ik heb een kolom met een datatype: datetime. Maar nu wil ik het converteren naar datatype varchar. Kan ik het datatype wijzigen zonder de kolom te laten vallen? Zo ja, leg dan uit hoe?
Antwoord 1, autoriteit 100%
Als ALTER COLUMN niet werkt.
Het is niet ongebruikelijk dat de kolom alter mislukt omdat het niet de gewenste transformatie kan maken. In dit geval is de oplossing om een dummy-tabel TableName_tmp te maken, de gegevens te kopiëren met uw gespecialiseerde transformatie in de bulkopdracht Insert, de originele tabel weg te laten en de tmp-tabel te hernoemen naar de naam van de originele tabel. U moet de beperkingen voor externe sleutels laten vallen en opnieuw maken en voor de prestaties wilt u waarschijnlijk sleutels maken nadat u de tmp-tabel hebt gevuld.
Klinkt dat als veel werk?Dat is het eigenlijk niet.
Als u SQL Server gebruikt, kunt u de SQL Server Management Studio het werk voor u laten doen!
- Breng uw tabelstructuur naar voren (klik met de rechtermuisknop op de tabelkolom en selecteer “Wijzigen”)
- Breng al uw wijzigingen aan (als de kolomtransformatie illegaal is, voegt u gewoon uw nieuwe kolom toe – u zult hem zo opknappen).
- Klik met de rechtermuisknop op de achtergrond van het venster Wijzigen en selecteer “Wijzigingsscript genereren”. In het venster dat verschijnt, kun je het wijzigingsscript naar het klembord kopiëren.
- Annuleer de wijziging (je wilt tenslotte je script testen) en plak het script in een nieuw queryvenster.
- Wijzig indien nodig (bijv. voeg uw transformatie toe terwijl u het veld uit de tmp-tabeldeclaratie verwijdert) en u hebt nu het script dat nodig is om uw transformatie uit te voeren.
Antwoord 2, autoriteit 92%
ALTER TABLE mytable ALTER COLUMN mycolumn newtype
Pas op voor de beperkingen van de ALTER COLUMN-clausule in het artikel
Antwoord 3, autoriteit 41%
ALTER TABLE [table name] MODIFY COLUMN [column name] datatype
Antwoord 4, autoriteit 31%
ALTER TABLE YourTableNameHere ALTER COLUMN YourColumnNameHere VARCHAR(20)
Antwoord 5, autoriteit 28%
het is eenvoudig! typ gewoon de onderstaande vraag
tabel tabel_naam wijzigen kolom kolomnaam gegevenstype
alter table Message alter column message nvarchar(1024);
het zal werken
veel plezier met programmeren
Antwoord 6, autoriteit 22%
ALTER TABLE YourTableNameHere ALTER COLUMN YourColumnNameHere VARCHAR(20)
Antwoord 7, autoriteit 19%
Met SQL server 2008 en meer, met deze query:
ALTER TABLE [RecipeInventorys] ALTER COLUMN [RecipeName] varchar(550)
Antwoord 8, autoriteit 9%
Dit werk voor postgresql 9.0.3
alter table [table name] ALTER COLUMN [column name] TYPE [character varying];
http://www.postgresql.org/docs/8.0/ static/sql-altertable.html
Antwoord 9, autoriteit 3%
ALTER TABLE [table_name] ALTER COLUMN [column_name] varchar(150)
Antwoord 10, autoriteit 3%
ALTER TABLE YourTableNameHere ALTER COLUMN YourColumnNameHere VARCHAR(20) dit is perfect voor wijziging van datatype
Antwoord 11
ORACLE – Wijzig tabel table_name modified(column_name new_DataType);
Antwoord 12
WIJZIG TABEL uw tabel WIJZIG KOLOM uw kolom gegevenstype
Antwoord 13
ALTER TABLE table_name
MODIFY (column_name data_type);
Antwoord 14
ALTER tablename MODIFY columnName newColumnType
Ik weet echter niet zeker hoe het de wijziging van datetime naar varchar zal verwerken, dus het kan zijn dat je de kolom moet hernoemen, een nieuwe moet toevoegen met de oude naam en het juiste gegevenstype (varchar) en dan een update moet schrijven query om de nieuwe kolom van de oude te vullen.
http://www.1keydata.com/sql/sql-alter -table.html
Antwoord 15
alter table [table name] remove [present column name] to [new column name.