Hoe verander je het gegevenstype van een kolom zonder de kolom te laten vallen met een zoekopdracht?

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%

MSDN zegt

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.

Other episodes