Archivio della Categoria : ‘ SQL Server’

Aruba e Sql Server

{ Inserito il 20 Dic 2016 da maury }
Categorie : hosting, SQL Server

Come già accennato nell’articolo precedente, Aruba fornisce un accesso ai database SqlServer tramite un tool ad interfaccia web chiamato MyLittleAdmin, potente ma non completo, e a volte risulta complesso fare operazioni che invece con Sql ServerManagement Studio Express sono banali.

Un di queste operazioni è il generare lo script di creazione tabella da una esistente, questa funzionalità non è presente in MyLittleAdmin, ma risulta molto utile dovendo ricreare le stesse tabelle su database diversi. Per ovviare a questo inconveniente la soluzione più semplice che ho trovato è:

1-fare un backup del database da MyLittleAdmin e scaricarlo in locale;

2-creare da dentro a Visual Studio un DataBase LocalDB dove andremo a mettere il ripristino del backup;

3-una volta ripristinato il DB andare su “Esplora Server->Connessioni Dati->selezionare il Db, poi la tabella” e con il pulsante destro scegliere “Apri definizione tabella”, qui troveremo il nostro codice SQL bello pronto

Ok, ma come si ripristina un backup su un LocalDB? Con poche semplici righe di codice…

RESTORE FILELISTONLY
FROM DISK = 'D:\path\to\backup\nomebackup.bak'

questo ci darà i “LogicalName” da usare nella query di ripristino:

RESTORE DATABASE nomeDB
FROM DISK = 'D:\path\to\backup\nomebackup.bak'
WITH MOVE 'LogicalName_Data' TO 'D:\path\to\database\nomedb.mdf',
MOVE 'LogicalName_Log' TO 'D:\path\to\database\nomedb_Log.ldf',
REPLACE;
Leggi »

Aruba e MyLittleAdmin per Sql Server

{ Inserito il 23 Nov 2016 da maury }
Categorie : hosting, SQL Server

L’Hosting di Aruba negli ultimi anni è davvero migliorato passando da livelli qualitativi bassi (questo secondo la mia esperienza di molti anni fa) ad un rapporto qualità prezzo veramente ottimo.

Ci sono alcune caratteristiche dell’hosting (e sto parlando principalmente di hosting windows) che sono molto stringenti, per esempio il “Medium Trust” o l’accesso ai database Sql Server tramite myLittleAdmin.

Quest’ultimo in particolar modo riesce a rendere molto sicuro l’accesso ai server Sql di Aruba ma ci impone alcune limitazioni che bisogna saper affrontare. Una di queste è il non poter creare in automatico lo script per ricreare la struttura di una tabella, cosa che invece è possibile con SQL Server Management Studio.

Abbiamo quindi due soluzioni:
1-fare un backup del database, ripristinarlo su un server Sql dal quale possiamo usare Management Studio da lì creare lo script;
2-Usare una Stored Procedure che permette di analizzare la tabella e crea lo script che ci serve.

Se invece vogliamo solo avere informazioni sulla struttura di una tabella senza dover andare nella gestione della tabella stessa queste query possono esserci utili:

SELECT * FROM information_schema.columns WHERE table_name = N'miatabella';
sp_help miatabella;
SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('miatabella');
Leggi »

Aruba e Membership provider di Asp.Net

{ Inserito il 19 Ott 2016 da maury }

Vi siete mai trovati nella necessità di installare le tabelle, viste, stored procedures per la gestione delle Membership di Asp.Net? Esiste un tool a riga di comando chiamato “aspnet_regsql.exe” che dati tutti i parametri di collegamento al dataase Sql Server provvede a fare quanto necessario.

Peccato che Aruba non fornisca un accesso diretto ai database Sql Server ma solo l’interfaccia Web “MyLittleAdmin” e quindi “aspnet_regsql.exe” non può essere usato nella sua forma standard.

Per fortuna tra i parametri di aspnet_regsql abbiamo la possibilità di generare solo un file di script da eseguire poi su MyLittleAdmin, la sintassi corretta è:

aspnet_regsql.exe -A all -sqlexportonly <filename>

ovviamente invece che “all” potere specificare quali sono le strutture da creare, qui trovate tutta la documentazione su aspnet_regsql

Non è finita qui.

Lo script generato non può essere usato così com’è per due motivi:

1-bisogna togliere tutti i riferimenti allo schema dbo (Aruba ha una schema diverso per ogni Database creato);

2-ci sono alcuni riferimenti a tabelle di sistema (per esempio master) che su Aruba non sono referenzibili.

Dopo queste correzioni, lanciando il file .sql troverete le vostre tabelle, viste, stored procedure belle pronte.

 

Leggi »

Utili comandi SQL

{ Inserito il 21 Gen 2014 da maury }
Categorie : SQL Server

Ecco una serie di utili comandi SQL Server

comprimere un database e lasciare 1% di spazio libero

DBCC SHRINKDATABASE (dbname, 1);

sapere lo spazio occupato da un database

exec sp_spaceused

conoscere lo spazio occupato da tutte le tabelle di un database

sp_msforeachtable 'EXEC sp_spaceused [?]'
Leggi »

Esportare solo alcune righe di un DB Sql Server da Aruba

{ Inserito il 25 Ago 2011 da maury }
Tags : , , ,
Categorie : SQL Server

La gestione dei database Sql Server su Aruba avviene tramite un tool chiamato MyLittleAdmin, in pratica un front-end che permette di operare sul database tramite pagine web, rendendo quindi impossibile l’accesso allo stesso dall’esterno anche da parte di tool come SQL Server Management Studio (che sia la versione Express o meno).
Questa scelta, dettata sicuramente dalla necessità di rendere possibile l’utilizzo dei database solo dall’interno dei piani hosting di Aruba, può creare non pochi problemi soprattutto perchè questo tool non è potente e completo come le applicazioni citate.
Un grosso problema è sicuramente l’esportazione (tramite Strumenti->Genera Script Sql) di un sottoinsieme di righe di una tabella… l’oprazione non è direttamente possibile, ma è possibile solo esportare l’intera tabella.
La soluzione più semplice che ho trovato è usare il comando SELECT INTO di Sql Server 2005, avremo quindi una cosa del tipo:

SELECT * INTO temptable FROM origtable WHERE condition

questo crea una tabella chiamata “temptable” con le sole righe richieste che potrà essere esportata senza problemi.

Leggi »

Sql server da un backup ad un DB

{ Inserito il 23 Nov 2010 da maury }

Se dovete prendere un backup di un DB Sql server fatto da un hosting provider (per esempio usando “mylittlebackup” di Aruba) ed importarlo in un Db locale, troverete un problema: tutti gli oggetti avranno come schema l’utente del database invece che il più standard “dbo”.

Per risolvere, dopo aver importato il DB è necessario eseguire per tutti gli oggetti coinvolti uno script del genere

ALTER SCHEMA dbo TRANSFER Mssql12345.tablename

(dove ‘Mssql12345’ è il nome dell’utente del DB e ‘tablename’ il nome della tabella)

questo risulta noioso se gli oggetti sono tanti, la soluzione più semplice (che non coinvolga cursori e query complesse) è quella di eseguire una query del tipo

SELECT 'ALTER SCHEMA dbo TRANSFER Mssql12345.' + name 
FROM sys.objects 
WHERE type='U'

e di usare il risultato per eseguire la query di aggiornamento dello schema…

Leggi »