gwtipstricks:idxtipstricks:appuntisqlserver

Appunti SQL Server

  1. eseguire il bkp del DB di partenza
  2. creare il DB di arrivo con il nome desiderato
  3. in fase di import:
    1. importare il DB esportato nel DB con il nuovo nome
    2. nella scheda “file” selezionare l'opzione “riloca tutti i file nella cartella” e controllare che i path “nome file originale” e “ripristina come” facciano riferimento al nuovo DB
    3. nella scheda “opzioni” selezionare solo l'opzione “sovrascrivi il database esistente (with replace)”

0. creare gli schemi nuovi vuoti

1. eseguire la seguente query:

SELECT 'ALTER SCHEMA schema_arrivo TRANSFER ' + TABLE_SCHEMA + '.' + TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'schema_partenza' order by TABLE_NAME

2. selezionare tutte le query che vengono restituite ed eseguirle per trasferire tutte le tabelle

3. controllare le viste –> esportare gli script delle viste e tramite un editor di testo aggiornare lo schema al loro interno

4. cancellare tutte le viste eseguendo la seguente query per selezionarle tutte:

SELECT 'DROP VIEW ' + QUOTENAME(SCHEMA_NAME(schema_id)) + '.' + QUOTENAME(v.name) +';'
FROM   sys.views v

5. selezionare tutti i risultati ed eseguirli per cancellare tutte le viste

6. controllare se ci sono delle funzioni/procedure da modificare

7. ricreare le viste opportunamente modificate

8. controllare l'esatto numero delle viste, lanciare lo script di creazione più volte perché viste potrebbero dipendere da altre viste

1. eseguire la seguente query:

SELECT  ' Drop table ' + QUOTENAME(TABLE_SCHEMA) + '.'+ QUOTENAME(TABLE_NAME) + '; '
FROM   INFORMATION_SCHEMA.TABLES
WHERE  TABLE_TYPE = 'BASE TABLE' order by TABLE_NAME

2. copiare ed incollare il risultato in una finestra di lavoro

3. per fare la delete “SELECT ' Delete ' +”

4. per selezionare “SELECT ' Select * ' +”

USE [INTESA_CDE] -- replace your dbname
GO
SELECT
s.Name AS SchemaName,
t.Name AS TableName,
p.rows AS RowCounts,
CAST(ROUND((SUM(a.used_pages) / 128.00), 2) AS NUMERIC(36, 2)) AS Used_MB,
CAST(ROUND((SUM(a.total_pages) - SUM(a.used_pages)) / 128.00, 2) AS NUMERIC(36, 2)) AS Unused_MB,
CAST(ROUND((SUM(a.total_pages) / 128.00), 2) AS NUMERIC(36, 2)) AS Total_MB
FROM sys.tables t
INNER JOIN sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN sys.allocation_units a ON p.partition_id = a.container_id
INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
GROUP BY t.Name, s.Name, p.Rows
ORDER BY CAST(ROUND((SUM(a.used_pages) / 128.00), 2) AS NUMERIC(36, 2)) desc,s.Name, t.Name
GO

1. connettersi come 'sa'

2. Creare un DATABASE

3. posizionarsi nella cartella 'Sicurezza' del nuovo Database

4. Creare utente xxx_DATA, andare su Proprietà e in 'Generale', mettere:

  'Nome Utente'= xxx_DATA
  'Nome account di accesso'= xxx_DATA
  'Schema predefinito' = lasciare vuoto per ora

. in 'Appartenenza' dare i seguenti diritti:

     db_datareader
     db_datawriter
     db_owner

5. Creare Schema xxx_DATA, andare su Proprietà e mettere in 'Proprietario' schema xxx_DATA

6. tornare su Proprietà utente e impostare su 'Generale':
'Schema predefinito' = xxx_DATA

7. ripartire dal punto 4 per creare lo schema xxx_METADATA

8. IMPORTANTISSIMO: disconnettersi da SA e riconnettersi con il nome utente da cui si eseguiranno gli script.

9. aprire una Finestra di Query e accertarsi che sia appartenente all'utente corretto prima di eseguire gli script.

  • gwtipstricks/idxtipstricks/appuntisqlserver.txt
  • Ultima modifica: 2019/11/19 13:18
  • da sabrina.sonno