[VB6+ADO] Hernoemen kolom

Pagina: 1
Acties:

  • DukeMan
  • Registratie: Mei 2000
  • Niet online
Wie o wie, kan mij helpen...

Ik probeer vanuit VB6 een kolom naam in een access db te hernoemen.

Ik gebruik de query:

code:
1
ALTER TABLE tbdTable RENAME fldKolomOud TO fldKolomNieuw


Hij gaat er niet op fout, maar toch voert hij de wijziging niet door.

Weet iemand een manier om het aan te passen?
Ik heb de hele avond zitten googlen maar kan er niets op vinden...

Verwijderd

RENAME wordt niet herkend.

Heb m zelfs voor de zekerheid door mn SQL Query Analyzer gepompt.

Het is een Access database lees ik. Waarom deze 1-malige actie zo moeilijk doen en niet gewoon wijzigen vanuit Access (design view)?

Let op dat je alleen de NAAM veranderd..niet het type.

Verwijderd

Dit is geen antwoord op jouw vraag.

Echter...in een SQL 7 / 2000 / MSDE omgeving werkt dit wel met een stored procedure SP_RENAME.

Mocht je dit ooit moeten doen op een "grote" database, dan werkt het zo.

Hier het antwoord in SQL:
(let niet op VB, doe ik voor het leesgemak).

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
EXECUTE sp_rename N'dbo.tbdTable.fldKolomOud', N'Tmp_fldKolomNieuw', 'COLUMN'
GO
EXECUTE sp_rename N'dbo.tbdTable.Tmp_fldKolomNieuw', N'fldKolomNieuw', 'COLUMN'
GO
COMMIT


En wat mijn SQL 2000 servertje zegt na deze actie:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(5 row(s) affected)

Caution: Changing any part of an object name could break scripts and stored procedures.

(5 row(s) affected)

The COLUMN was renamed to 'Tmp_fldKolomNieuw'.

(5 row(s) affected)

Caution: Changing any part of an object name could break scripts and stored procedures.

(5 row(s) affected)

The COLUMN was renamed to 'fldKolomNieuw'.

  • DukeMan
  • Registratie: Mei 2000
  • Niet online
Het is een access database...

Ik heb de volgende reden dat ik het vanuit VB wil doen:
Wij hebben een aantal producten, en in een 1 van die producten (die een access db gebruikt) is een update gekomen. De database is gewijzigd: er zijn enkele kolommen bijgekomen, en 1'tje moet er hernoemd worden.
Om de klanten dit niet zelf te laten doen, ben ik een omzet-tooltje aan het maken. Deze zet dat automatisch de db om naar het juiste formaat. Dit tooltje schrijf ik in VB6.

Vandaar de vraag...
(Ik heb helaas niets aan SQL server stored procedures ;) )

Verwijderd

misschien kan het met een change statement....

CHANGE [COLUMN] old_col_name create_definition [FIRST | AFTER column_name]

Verwijderd

Hmm. In VB.NET bak ik dit in 10 minuten maar in VB6 moet ik weer even nadenken (+installeren).

Mocht het je binnen 24 uur niet lukken dan help ik mijn mede-tweaker uit de brand door VS6 maar weer s te installeren.

Zo'n tooltje kan ik zelf misschien ook nog s gebruiken bij een klant :)

Hou ons op de hoogte hier!

  • Brothar
  • Registratie: Oktober 2000
  • Laatst online: 04-02 09:14

Brothar

meester

En met DDL?
De tabel hernoemen, en dan een nieuwe tabel definieren met de naam van de oude, maar met de nieuwe kolommen toegevoegd, met dan een Insert in deze tabellen van de records uit de oude ?
Als een gewoon nachtelijk onderhoud ?

Is dat een oplossing, of vind je dit te omslachtig ?

eagle


  • DukeMan
  • Registratie: Mei 2000
  • Niet online
Onder het mom: beter laat als nooit:
hier mijn oplossing:

Ik heb het nu als volgt opgelost:

Ik maak in desbetreffende tabel een extra kolom aan zoals die uiteindelijk moet heten. Volgens kopieer ik alle data uit de oude kolom naar de nieuwe kolom met een insert statement.

Nadat alle data is overgezet drop ik de kolom, en vervolgens lijkt het dus alsof de kolom hernoemt.

Allemaal bedankt voor de hulp!!!
Pagina: 1