Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Export Λιστας με πίνακες και πεδία πινάκων

Îåêßíçóå áðü ôï ìÝëïò agmarios. Τελευταία δημοσίευση από το μέλος spaceman στις 04-08-2006, 14:56. Υπάρχουν 11 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  28-07-2006, 13:01 15285

    Export Λιστας με πίνακες και πεδία πινάκων

    Χρησιμοποιώ SQL server 2005 Express (αλλά μπορώ να βάλω και την developer edition αν χρειαστεί) και θέλω για μια βάση να εμφανίσω μια λίστα με τους πίνακες και για κάθε πίνακα μια λίστα με τα πεδία του και τον τύπο των πεδίων πχ

    ElementType
    etId int PK
    etNameGR nvarchar(64) not null
    etNameEN nvarchar(64) not null

    Element
    eId int PK
    etId int FK
    eNameGR nvarchar(64) not null
    eNameEN nvarchar(64) not null

    Υπάρχει κάποιο εργαλείο που το κάνει ή πρέπει να χρησιμοποιήσω τις sp_tables, sp_foreignkeys, sp_tables ή κάποιες παρόμοιες;

     

  •  28-07-2006, 14:17 15286 σε απάντηση της 15285

    Απ: Export Λιστας με πίνακες και πεδία πινάκων

    εννοείς να κάνεις κάτι σαν documentation της βάσης π.χ. για εκτύπωση ή για να το δώσεις σε κάποιον ενδιαφερόμενο;

    Αν ναι τότε, μπορείς να κάνεις reverse engineering στο VISIO 2003 for Enterprise Architects μετά να εξάγεις ένα report. Μπορείς επίσης να χρησιμοποιήσεις το εργαλείο database documenter που βγάζει chm. Νομίζω το link είναι αυτό:

    http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=2404&lngWId=10
    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  28-07-2006, 15:08 15287 σε απάντηση της 15286

    Απ: Export Λιστας με πίνακες και πεδία πινάκων

    ευχαριστώ πολύ, όντος θέλω να δώσω ένα report στον πελάτη

    (δεν θα καταλάβει, αλλά θα τον πείσω ότι τηρώ το χρονοδιάγραμμα, πράγμα το οποίο ισχύει άλλωστε).

    Το reverse engineering του Visio proffesional 2003 μου έβγαλε ότι δεν είναι συμβατό με αυτής την έκδοση της βάσης.

    Το database documenter θα το κάνω compile και θα δω.

    Ευχαριστώ για την απάντηση
  •  28-07-2006, 15:09 15288 σε απάντηση της 15287

    Απ: Export Λιστας με πίνακες και πεδία πινάκων

    VISIO 2003 for Enterprise Architects. Είναι συμβατό με SQL Server 2005. Το χρησιμοποιώ.
    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  28-07-2006, 15:10 15289 σε απάντηση της 15288

    Απ: Export Λιστας με πίνακες και πεδία πινάκων

    Ίσως δεν είναι με τον Express! Δεν το έχω δοκιμάσει.
    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  28-07-2006, 15:11 15290 σε απάντηση της 15288

    Απ: Export Λιστας με πίνακες και πεδία πινάκων

    έχουμε και άλλη έκδοση visio, εγώ έχω το professional 2003
  •  02-08-2006, 17:55 15414 σε απάντηση της 15285

    Απ: Export Λιστας με πίνακες και πεδία πινάκων

    --for SQL SERVER 2000 (needs a bit of testing)

    SET NOCOUNT ON

    --declare variables

    DECLARE @runner SMALLINT,

    @limit SMALLINT,

    @tbl_name VARCHAR(50),

    @col_runner SMALLINT,

    @col_limit SMALLINT,

    @col_str VARCHAR(1000)

    --declare table variable

    DECLARE @tables TABLE(AA SMALLINT IDENTITY(1,1),

    tbl_name VARCHAR(50))

    DECLARE @ordinal TABLE(col_order TINYINT)

    INSERT INTO @tables(tbl_name)

    SELECT TABLE_NAME

    FROM INFORMATION_SCHEMA.TABLES

    ORDER BY TABLE_NAME

    SELECT @runner = MIN(AA), @limit = MAX(AA)

    FROM @tables

    WHILE @runner <= @limit

    BEGIN

    SELECT @tbl_name = tbl_name

    FROM @tables

    WHERE AA = @runner

    print 'Table:' + @tbl_name

    --get column orders

    INSERT INTO @ordinal(col_order)

    SELECT ORDINAL_POSITION

    FROM INFORMATION_SCHEMA.COLUMNS

    WHERE TABLE_NAME = @tbl_name

    ORDER BY ORDINAL_POSITION

    SELECT @col_runner = MIN(col_order), @col_limit = MAX(col_order)

    FROM @ordinal

    WHILE @col_runner <= @col_limit

    BEGIN

    SET @col_str = NULL

    SELECT @col_str = tcol.COLUMN_NAME +' '+ ISNULL(tcol.DOMAIN_NAME, tcol.DATA_TYPE) + ISNULL('('+ CAST(tcol.CHARACTER_MAXIMUM_LENGTH AS VARCHAR)+') ', ' ')+ CASE tcol.IS_NULLABLE WHEN 'NO' THEN 'not ' ELSE '' END + 'null ' + ISNULL('DEFAULT'+tcol.COLUMN_DEFAULT, ' ')

    + CASE WHEN EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE col

    JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tbl ON tbl.TABLE_NAME = col.TABLE_NAME AND tbl.CONSTRAINT_NAME = col.CONSTRAINT_NAME

    WHERE col.TABLE_NAME = tcol.TABLE_NAME AND col.COLUMN_NAME = tcol.COLUMN_NAME AND LEFT(tbl.CONSTRAINT_TYPE, 1) = 'P') THEN 'PK ' ELSE '' END

    + CASE WHEN EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE col

    JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tbl ON tbl.TABLE_NAME = col.TABLE_NAME AND tbl.CONSTRAINT_NAME = col.CONSTRAINT_NAME

    WHERE col.TABLE_NAME = tcol.TABLE_NAME AND col.COLUMN_NAME = tcol.COLUMN_NAME AND LEFT(tbl.CONSTRAINT_TYPE, 1) = 'F') THEN 'FK ' ELSE '' END

    FROM INFORMATION_SCHEMA.COLUMNS tcol

    WHERE tcol.TABLE_NAME = @tbl_name

    AND tcol.ORDINAL_POSITION = @col_runner

    --move to next column

    SELECT @col_runner = @col_runner+1

    IF @col_str IS NULL

    CONTINUE

    print @col_str

    END

    print ''

    --delete records in @ordinal

    DELETE FROM @ordinal

    SET @runner = @runner+1

    END

    SET NOCOUNT OFF
  •  03-08-2006, 10:55 15434 σε απάντηση της 15414

    Απ: Export Λιστας με πίνακες και πεδία πινάκων

    σε ευχαριστώ πολύ για την απάντηση, δυστυχώς στον SQL server 2005 Express δεν παίζει, αν και νομίζω ότι στα errors που μου βγάζει δεν φταίει η έκδοση:

    WHILE @runner
    BEGIN

    Msg 4145, Level 15, State 1, Line 40
    An expression of non-boolean type specified in a context where a condition is expected, near 'BEGIN'.

    WHILE @col_runner
    BEGIN

    Msg 4145, Level 15, State 1, Line 67
    An expression of non-boolean type specified in a context where a condition is expected, near 'BEGIN'.
  •  04-08-2006, 14:05 15492 σε απάντηση της 15285

    Απ: Export Λιστας με πίνακες και πεδία πινάκων

    Συγγνώμη...αλλά προφανώς έγινε κάποιο λάθος κατά το paste...

    Λείπουν οι συνθήκες ελέγχου στo εκάστοτε WHILE

    To σωστό είναι:

    WHILE @runner <= @limit

    BEGIN

    WHILE @col_runner <= @col_liimit

    BEGIN

    --HTH--

  •  04-08-2006, 14:08 15493 σε απάντηση της 15492

    Απ: Export Λιστας με πίνακες και πεδία πινάκων

    ....ΔΕΝ το εμφανίζει στο forum.... (** ΔΕΝ το εμφάνιζε)

    Εγινε post με την γρήγορη φόρμα...και αγνοήθηκαν όλοι οι χαρακτήρες μαζί με το <=

    Για αυτο ΔΕΝ εμφανιστηκαν στο προηγουμενο post.

    Στη συνέχεια έκανα τροποποίηση στο μήνυμα (αυτό με τον κώδικα) και οι χαρακτηρες που ΔΕΝ εμφανιζονται στο μηνυμα...υπηρχαν στο κειμενο προς τροποποιηση!!!!

    Με post ΧΩΡΙΣ αλλαγή και όλοι οι χαρακτήρες εμφανίστηκαν (αυτοι που έλλειπαν από τις συνθήκες while και εκαναν το κωδικα να επιστρεφει σφαλμα)

     

    ** Ισως χρειαζεται ελεγχος της Γρηγορης Δημοσιευσης, οταν ο χρηστης πληκτρολογει  <=

    --HTH--

     

     

  •  04-08-2006, 14:46 15495 σε απάντηση της 15493

    Απ: Export Λιστας με πίνακες και πεδία πινάκων

    άψογος, αυτό ακριβώς που ήθελα
  •  04-08-2006, 14:56 15496 σε απάντηση της 15285

    Απ: Export Λιστας με πίνακες και πεδία πινάκων

    ...πιθανον να χρειαζεται λιγη προσθηκη για να συμπεριλαμβανονται τα στοιχεια των decimal/float πεδιων (αριθμος δεκαδικων ψηφιων κτλ)..οπως επισης και για καποιον τυπο δεδομενων που απαιτουνται περισσοτερες πληροφοριες...

    μια ματια στα BOL σιγουρα θα βοηθησει ...

    --ΗΤΗ--
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems