Avatar billede pimpf202 Nybegynder
30. november 2004 - 13:06 Der er 13 kommentarer og
1 løsning

oprettelse af tabeller

Jeg har oprettet en database på følgende måde:
create database test
go
create table table1 (
række1  char(9),
række2  char(9) )
go
create table table2 (
række1  int,
række2  int )
go

Nu har jeg brug for via. T-SQL at kunne genskabe disse 2 tabeller i en anden database (test2). Hvis jeg kigger i syscolumns, så kan jeg se de 4 rækker samt datatype, men jeg kan ikke se i hvilke tabeller de hører hjemme. Det jeg har brug for er at kunne oprette nøjagtig de samme tabeller med de samme datatyper i en ny database.. Håber der er nogen der kan hjælpe ...
Avatar billede aaberg Nybegynder
30. november 2004 - 13:11 #1
hvis du skriver:

EXEC sp_tables

Så får du en liste over alle tabeller og views i din database.
Avatar billede arne_v Ekspert
30. november 2004 - 13:16 #2
Du kan eksportere tabel definitioner som SQL sætninger fra Enterprise Manager.

Tools menu
Database scripting
kryds i tables
angive filnavn

(efter hukommelsen)
Avatar billede aaberg Nybegynder
30. november 2004 - 13:19 #3
Du kan også få dine tabeller ved at skrive

SELECT name
FROM sysobjects
WHERE xtype = 'U'
Avatar billede pimpf202 Nybegynder
30. november 2004 - 13:43 #4
Tak for hjælpen indtil videre.. Jeg kender godt til select from sysobjects, og arne, har svaret mig på et sprøgsmål for et par dage siden, angående scripting af databasen. Problemet er at jeg ikke kan scripte min database ud, da den går ned af det, og den går desuden ned af alt hvad der har med et gui at gøre... så det jeg har brug for er når jeg eks laver en select name from sysobjects where xtype = 'U', og jeg får at vide at jeg har en table der hedder table 1, hvordna jeg så kan finde ud af hvilke rækker den indeholder samt datatypen (de informationer der står i syscolumns
Avatar billede arne_v Ekspert
30. november 2004 - 13:47 #5
OSQL

sp_tables

til at liste alle tabeller og

sp_table 'foobar'

til at liste felter i tabel 'foobar' (der er sikkert også en kolonne
med data type)
Avatar billede arne_v Ekspert
30. november 2004 - 13:47 #6
Og at du ikke kan køre EM lyder ikke sundt ...
Avatar billede aaberg Nybegynder
30. november 2004 - 13:50 #7
Hvis du godt kan hente fra sys tabellerne, kan du skrive:

SELECT sysobjects.name AS 'tablename', syscolumns.name AS 'columnname'
FROM syscolumns
INNER JOIN sysobjects ON syscolumns.id = sysobjects.id
WHERE sysobjects.xtype = 'U'

så får du alle tabellerne med tilhørende columns.
Avatar billede pimpf202 Nybegynder
30. november 2004 - 14:08 #8
Til aaberg80:
Mange tak for hjælpen. Det var lige præcis hvad jeg skulle bruge :-) så steg humøret en tand.. Så mangler jeg bare at finde ud af en let måde at "oversætte" xtype nummeret til datatypen (overrasket over jeg ikke kan finde det i bol). Du må meget gerne post et svar, så får du nogle points...
Til Arne:
Jeg kan godt køre em, og script funktionen som du lærte mig, fungere også fint , og det gør dts også, men kun med små databaser. Jeg har en db på 36 gb, med 22.000 tabeller og 4.000 views, og dette får den til at gå ned, hver gang når jeg forsøger at  få dataen ud. Jeg er tilgængæld meget nysgerrig om dette er normalt at sql serveren ikke kan håndtere eksport af disse datamængder, eller om det er mit opsæt der er et eller andet med.. Jeg vil gerne bruge lejlighede til at sige tak for alle de gange du har hjulpet efterhånden har hjulpet mig, det har været uvurderligt..
Avatar billede aaberg Nybegynder
30. november 2004 - 14:20 #9
Hvis du skriver nedenstående, får du også datatypen med.

SELECT sysobjects.name AS 'tablename', syscolumns.name AS 'columnname', systypes.name AS 'datatype'
FROM syscolumns
INNER JOIN sysobjects ON syscolumns.id = sysobjects.id
INNER JOIN systypes ON syscolumns.xusertype = systypes.xusertype
WHERE sysobjects.xtype = 'U'

God arbejdslyst
Avatar billede arne_v Ekspert
30. november 2004 - 14:32 #10
22000 tabeller + 4000 views ? SAP ?
Avatar billede arne_v Ekspert
30. november 2004 - 14:33 #11
jeg synes ikke at EM skulle gå ned, men jeg har aldrig prøvet
med tilnærmelsesvis det antal tabeller + views
Avatar billede pimpf202 Nybegynder
30. november 2004 - 15:14 #12
Det er lige præcist sap...... og tak for tilføjelse fra aaberg80
Avatar billede arne_v Ekspert
30. november 2004 - 16:00 #13
Det kunne vist ikke være andet med så mange tabeller ...

:-)
Avatar billede janus_007 Nybegynder
30. november 2004 - 19:43 #14
Jeg vil lige indsparke en fodnote...
Undgå at arbejde med systabels!! Brug hellere det som Microsoft har opfundet til formålet:
Select * from information_schema.tables
Select * from information_schema.columns
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester