SHOW TABLE STATUS su mssql?

mercoledì 30 agosto 2006 - 18.01

killer Profilo | Newbie

quale e la sintassi per emulare SHOW TABLE STATUS che in mysql va ? ma non per mssql?

ho provato exec sp_add_job ma non so se va bene...help ciaoz

alx_81 Profilo | Guru

Ciao!
qual è il risultato che vuoi ottenere?
l'elenco dei JOB che stanno girando?
l'elenco delle dimensioni occupate dalle tabelle?
Alx81 =)

http://blogs.dotnethell.it/suxstellino

lbenaglia Profilo | Guru

>quale e la sintassi per emulare SHOW TABLE STATUS che in mysql
>va ? ma non per mssql?

Ciao Killer,

da quello che leggo il comando SHOW TABLE STATUS è proprietario di MySQL e restituisce di tutto e di più:
http://dev.mysql.com/doc/refman/5.0/en/show-table-status.html

Molte informazioni non sono pertinenti con SQL Server pertanto non hanno alcun senso in questo contesto.
Il comando che più si avvicina è la stored procedure di sistema sp_help:

USE Northwind; GO EXEC sp_help N'Customers'; GO

Esistono diversi sistemi per recuperare le stesse informazioni, se ci dici cosa ti interessa precisamente potremo suggerirti la soluzione più adeguata.

>ho provato exec sp_add_job ma non so se va bene...help ciaoz
Decisamente no, quella stored procedure di sistema serve per definire un nuovo job.
Per maggiori informazioni consulta i Books Online:

"sp_help"
http://msdn.microsoft.com/library/en-us/tsqlref/ts_sp_help_304w.asp

"sp_add_job"
http://msdn.microsoft.com/library/en-us/tsqlref/ts_sp_adda_5wyq.asp

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

killer Profilo | Newbie

ciao mi serve per fare un back up del database in pratica creo uno script che legge e salva i dati in un file...e il tutto mi serve apppppppppppunto per leggere vedere le dimensioni del file e creare il backup...

ho provato una cosa del genere infatti...

mssql_query("exec sp_add_job $dbname");

$mssql_size = mssql_query("EXEC sp_spaceused @updateusage = 'TRUE'$dbname");

lbenaglia Profilo | Guru

>ciao mi serve per fare un back up del database in pratica creo
>uno script che legge e salva i dati in un file...e il tutto mi
>serve apppppppppppunto per leggere vedere le dimensioni del file
>e creare il backup...

Non ti seguo. Per eseguire il backup di un database SQL Server è sufficiente ricorrere al comando T-SQL BACKUP DATABASE:

"Procedura: Creazione di un backup completo del database (Transact-SQL) "
http://msdn2.microsoft.com/it-it/library/ms191304.aspx

A cosa ti serve conoscere le dimensioni delle tabelle?!

>ho provato una cosa del genere infatti...
>
>mssql_query("exec sp_add_job $dbname");
>
>$mssql_size = mssql_query("EXEC sp_spaceused @updateusage = 'TRUE'$dbname");

Ancora non capisco che stai cercando di fare... Devi schedulare il comando di backup?
Bene, crea un nuovo JOB con uno step contenente il comando di backup e schedulalo all'orario che preferisci.
Tutti i dettagli li trovi sui Books Online.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

killer Profilo | Newbie

ciao scusa per il ritardo con cui rispondo ma ero via...in pratica io devo emulare il comando di mysql..per

1 fare 1 backup dell intero database oppure di qualche tabella...mi piacerebbe inoltre calcolare anche lo spazio utilizzato...

ho provato a fare come nel manuale ma non ci salto fuori questo lo devo mettere dentro al codice...
ho provato cosi ma con scarsi risultati...

$rs = mssql_query("EXEC sp_addumpdevice 'disk', 'nomedb,' $sitepaths/backup/nomedb.sql'");

ma mi da un errore di


message: La richiesta per l'aggiunta di una periferica stata negata. La periferica fisica denominata 'C:\Programmi/Apache Group/Apache2/htdocs/nomesito/admin/backup/bobnuovo.sql' esiste gia(severity 16)

ho corretto cambiando nome ma non funziona...

ho utilizzanto il comando ..help e qualcosa accade..ma non e ancora perfetto...

in pratica io vorrei leggere il dump del db passare tutto in un array e salvare il tutto in un file.sql
questo lo devo fare dentro al codice php o asp che sia..in questo caso php..

in sostanza mi basterebbe eseguire il dump semplicemente tramite uno script..


lbenaglia Profilo | Guru

>ciao scusa per il ritardo con cui rispondo ma ero via...in pratica
>io devo emulare il comando di mysql..per
>
>1 fare 1 backup dell intero database oppure di qualche tabella...mi
>piacerebbe inoltre calcolare anche lo spazio utilizzato...

Come ti ho già suggerito nel precedente post, per eseguire in backup di un database SQL Server offre il comando T-SQL BACKUP DATABASE. Leggi il paragrafo dei BOL per conoscere la sintassi.

>ho provato a fare come nel manuale ma non ci salto fuori questo
>lo devo mettere dentro al codice...
>ho provato cosi ma con scarsi risultati...
>
>$rs = mssql_query("EXEC sp_addumpdevice 'disk', 'nomedb,' $sitepaths/backup/nomedb.sql'");

Leggendo questa riga di codice è palese la confusione che hai in testa
Per capire cos'è un device fai riferimento ai Books Online.
Inoltre non è strettamente necessario definire un device, ma puoi spedificare direttamente il file di backup tramite l'opzione TO DISK:
BACKUP DATABASE Northwind TO DISK = 'C:\Northwind.bak'; GO /* Output: Processed 352 pages for database 'Northwind', file 'Northwind' on file 1. Processed 1 pages for database 'Northwind', file 'Northwind_log' on file 1. BACKUP DATABASE successfully processed 353 pages in 0.961 seconds (3.005 MB/sec). */

Per ripristinare un backup in caso di corruzione del db, utilizza il comando RESTORE DATABASE:
RESTORE DATABASE Northwind FROM DISK = 'C:\Northwind.bak'

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

killer Profilo | Newbie

ciao grazie per la risposta...

il problema e che non ho problemi se utilizzo tsql dentro a un bilder tsql
ma non riescfo ad integrare il comando dentro a codice php...o asp che sia...
..lo so bene che basta fare come mi hai detto infatti...pero non e possibile far eseguire l astessa cosa tramite php...e far salvare dentro ad un file.sql il dump delle tabelle e degli inserimenti....??
ho provato a lavorare sul master e sysobj...ma non estrapolo un gran che...l unico e con il comando sp_help..xx che qualcosa accade...ma pero siamo lontani..sai essendo ormai abituato a lavorare su mysql...ho perso un po di vista le procedure..microsoft dato che lavoro molto con php...ti ringarzio comunque per il tuto aiuto sei sempre molto gentile...ciao da Killer

lbenaglia Profilo | Guru

>il problema e che non ho problemi se utilizzo tsql dentro a un
>bilder tsql
>ma non riescfo ad integrare il comando dentro a codice php...o
>asp che sia...

E' sufficiente definire un oggetto ADODB.Connection, stabilire la connessione con il metodo .Open ed eseguire il comando con il metodo .Execute.

>..lo so bene che basta fare come mi hai detto infatti...pero
>non e possibile far eseguire l astessa cosa tramite php...e far
>salvare dentro ad un file.sql il dump delle tabelle e degli inserimenti....??

Il comando BACKUP DATABASE genera un file BINARIO contenente i dati del DB, NON un file di testo con i comandi di INSERT.
Il comando RESTORE DATABASE ti permette di ripristinare il precedente BACKUP in caso di corruzione del DB.

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

killer Profilo | Newbie

ciao ho gia provato execute e ti dico qualcosa generava ed accadeva...sembra che vengano creati i backup in binary..ma pero fisicamente non li vedo...se apro invece un programma di gestione mssql ci sono ma sono praticamente vuoti.... e per quello che ho fatto la domanda...perche in teoria non da errori ma in pratica non va!!...vabbe vabbe dai faccio a monovella e faccio prima..oppure faccio il backup con uno dei programmi...anche perche secondo ragionando non so quanto possa valer l apena avere uno script di bacup..be si forse per il cliente..puo dare una mano...

HO PROVATO NELLO SCRIPT:

questo mi da errore e non conclude un tubo

mssql_query("EXEC BACKUP DATABASE $dbname TO DISK = 'C:\$dbname.bak'");

questo non mi da errore ma non conclude un tubo
EXEC (" BACKUP DATABASE $dbname TO DISK = 'C:\$dbname.bak'");

la connessioone al db che utilizzo creato da me ce.......



1DOMANDA:
quando utilizzavo il metoto di backup di msde mi creava sti file...se io pero ridavo il comando tramite scrip mi diceva che il file esisteva gia...dando un occhiata nella carrtella predestinata il file non cera...

unultima cosa lui per device intende un file...cioe crea il dump come nome del file?

cioe mi spiego meglio se io imposto una cosa del genere:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

lui cosa farebbe??
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5