[MS SQL] Tabellen toevoegen

Pagina: 1
Acties:

  • Polderdijk
  • Registratie: December 2001
  • Laatst online: 19-05 14:10
Ik ben bezig om in mijn Control Panel een functie te bouwen waarin ik een SQL 2000 database kan aanpassen/wijzigen.

Alleen lukt het niet om een tabel toe te voegen zonder dat ik er direct een kolom bij moet doen. Het is dus de bedoeling dat alleen de tabel wordt aangemaakt. Ik gebruik nu onderstaande code voor het toevoegen:

SQL:
1
Conn.execute("CREATE TABLE [" & Request("NewTableName") & "] ([New Column] Numeric)")
Dus bij elk nieuw tabel wordt ook de kolom 'New Column' toegevoegd. Als ik dat laatste stukje weghaald krijg ik o.a. de foutmelding "Incorrect syntax near 'NewTableName'".

Hoe kan ik dit nu oplossen?


Ook heb ik een stukje gevonden waarbij je je tabel kan renamen, alleen vind ik dit wel een tricky manier om dit direct in je sp_configure te doen. Is hier misschien een andere oplossing voor? De ALTER TABLE heb ik al op diverse manieren geprobeerd maar zonder succes. Ik gebruik nu:
SQL:
1
2
3
4
Conn.execute("EXEC sp_configure 'allow', 1" & VBCrLf & "RECONFIGURE WITH OVERRIDE")
Conn.execute("UPDATE sysobjects " & VBCrLf & "SET [name] = '" & Request("NewTableName") & 
             VBCrLf & "WHERE [name] = '" & Request("oldTableName") & "'")
Conn.execute("EXEC sp_configure 'allow', 0" & VBCrLf & "RECONFIGURE WITH OVERRIDE")

Webhosting van SkyHost.nl: 25 Mb / 1 Gb windows hosting € 4,50 p/m excl.btw!


  • EfBe
  • Registratie: Januari 2000
  • Niet online
De syntax lezende van CREATE TABLE kan ik alleen maar concluderen dat er een column in moet, anders kun je de tabel niet aanmaken. Is ook wel logisch, een table is een 'relation' tussen attributes, en geen attributes (fields) dan ook geen table.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • Polderdijk
  • Registratie: December 2001
  • Laatst online: 19-05 14:10
Ja opzich heb je er wel gelijk in, maar is in mijn situatie niet wenselijk. Ik wil dat de gebruiker straks gewoon een tabelnaam intypt en dat dan alleen het tabel wordt gemaakt. Als je via bijvoorbeeld via de webinterface (SQL Webadministrator) werkt kan je namelijk ook eerst een tabel aanmaken waarna je daarna pas je kolommen gaat definieren om deze toe te voegen. Het is dus mogelijk zou je dan zeggen?

Webhosting van SkyHost.nl: 25 Mb / 1 Gb windows hosting € 4,50 p/m excl.btw!


  • Lorn
  • Registratie: Maart 2000
  • Laatst online: 13-01-2025

Lorn

I have a bad feeling...

Als je het via Enterprise Manager een nieuwe tabel aanmaakt dan definieer je ook eerst de columns van de tabel en pas daarna kun je de tabel opslaan en van een naam voorzien. Ik denk dat SQL Webadmin je maar laat denken dat 'ie een tabel heeft aangemaakt. Of misschien maakt 'ie een tabel aan met een column wat daarna meteen weer met een query wordt verwijderd?

Wat ik iig zeker weet is dat het Create Table command een column moet hebben.

  • Polderdijk
  • Registratie: December 2001
  • Laatst online: 19-05 14:10
Oke, dan ga ik het idd op een andere manier maken. Nu kan ik nog simpel terug :P

Webhosting van SkyHost.nl: 25 Mb / 1 Gb windows hosting € 4,50 p/m excl.btw!


Verwijderd

Om een tabel te renamen in MSSQL kan je de stored procedure sp_rename gebruiken. Dit ipv sp_configure.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Waarom maak je niet gewoon default een primary key aan, dat zou logisch en praktisch zijn en het probleem oplossen :?

En ga eens snel wat bijlezen over SQL Injection, die code is zo onveilig als wat :X

Professionele website nodig?


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
curry684 schreef op 13 oktober 2004 @ 11:45:

En ga eens snel wat bijlezen over SQL Injection, die code is zo onveilig als wat :X

Oops! Google Chrome could not find www.rijks%20museum.nl


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

offtopic:
hmm tot zover het concept 'in 4 maanden kun je veel bijleren' :X

Professionele website nodig?

Pagina: 1