SQL Server Management Studio ci offre la possibilità di utilizzare dei template predefiniti per la creazione e la modifica di oggetti. La lista dei template, accessibile dal Template Explorer, è veramente ampia. Eccone un'anteprima:
Come possiamo vedere vi sono molti modelli disponibili. Si possono modificare, se ne possono creare di nuovi. Vi è un'ampia libertà di movimento. In aggiunta abbiamo anche una lista dei template recentemente utilizzati dalla quale pescare i nostri preferiti.
Ma oltre alla lista, esiste la possibilità di scriverli "al volo" per utilizzarli subito, ad esempio, all'interno di uno script SQL. Prendendo spunto da uno dei tanti template disponibili sul Template explorer, notiamo il formato dei placeholder:
<nome_parametro, tipo_dati, valore>
nome_parametro rappresenta il nome del parametro nello script.
tipo_dati è il tipo di dati del parametro.
valore è il valore che sostituirà ogni occorrenza del parametro nello script.
Facciamo un semplice esempio. Ipotizziamo di dover creare uno script atto alla creazione di un database.
Vogliamo che il database sia formato da tre file (un mdf, un ldf ed un ndf) i cui nomi sono composti dal nome del database seguito da un suffisso, e da due FILEGROUP, PRIMARY e SECONDARY. Ecco un possible script, che va bene per ogni database:
CREATE DATABASE <NomeDB, stringa, > ON PRIMARY
( NAME = N'<NomeDB, stringa, >_data', FILENAME = N'C:\Databases\<NomeDB,
stringa, >_data.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB ),
FILEGROUP
[SECONDARY]
( NAME = N'<NomeDB, stringa, >_user', FILENAME = N'C:\Databases\<NomeDB,
stringa, >_user.ndf' , SIZE = 3072KB , FILEGROWTH = 1024KB )
LOG ON
( NAME = N'<NomeDB, stringa, >_log', FILENAME = N'C:\Databases\<NomeDB, stringa,
>_log.ldf' , SIZE
= 1024KB , FILEGROWTH = 10%)
GO
EXEC dbo.sp_dbcmptlevel
@dbname=N'<NomeDB,
stringa, >', @new_cmptlevel=90
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC <NomeDB, stringa, >.[dbo].[sp_fulltext_database] @action = 'disable'
end
GO
ALTER DATABASE <NomeDB, stringa, > SET ANSI_NULL_DEFAULT OFF
GO
ALTER DATABASE <NomeDB, stringa, > SET ANSI_NULLS OFF
GO
ALTER DATABASE <NomeDB, stringa, > SET ANSI_PADDING OFF
GO
ALTER DATABASE <NomeDB, stringa, > SET ANSI_WARNINGS OFF
GO
ALTER DATABASE <NomeDB, stringa, > SET ARITHABORT OFF
GO
ALTER DATABASE <NomeDB, stringa, > SET AUTO_CLOSE OFF
GO
ALTER DATABASE <NomeDB, stringa, > SET AUTO_CREATE_STATISTICS ON
GO
ALTER DATABASE <NomeDB, stringa, > SET AUTO_SHRINK OFF
GO
ALTER DATABASE <NomeDB, stringa, > SET AUTO_UPDATE_STATISTICS ON
GO
ALTER DATABASE <NomeDB, stringa, > SET CURSOR_CLOSE_ON_COMMIT OFF
GO
ALTER DATABASE <NomeDB, stringa, > SET CURSOR_DEFAULT
GLOBAL
GO
ALTER DATABASE <NomeDB, stringa, > SET CONCAT_NULL_YIELDS_NULL OFF
GO
ALTER DATABASE <NomeDB, stringa, > SET NUMERIC_ROUNDABORT OFF
GO
ALTER DATABASE <NomeDB, stringa, > SET QUOTED_IDENTIFIER OFF
GO
ALTER DATABASE <NomeDB, stringa, > SET RECURSIVE_TRIGGERS OFF
GO
ALTER DATABASE <NomeDB, stringa, > SET AUTO_UPDATE_STATISTICS_ASYNC OFF
GO
ALTER DATABASE <NomeDB, stringa, > SET DATE_CORRELATION_OPTIMIZATION OFF
GO
ALTER DATABASE <NomeDB, stringa, > SET PARAMETERIZATION SIMPLE
GO
ALTER DATABASE <NomeDB, stringa, > SET READ_WRITE
GO
ALTER DATABASE <NomeDB, stringa, > SET RECOVERY FULL
GO
ALTER DATABASE <NomeDB, stringa, > SET MULTI_USER
GO
ALTER DATABASE <NomeDB, stringa, > SET PAGE_VERIFY CHECKSUM
GO
USE <NomeDB, stringa, >
GO
IF NOT EXISTS (SELECT name FROM sys.filegroups WHERE
is_default=1 AND
name = N'SECONDARY') ALTER DATABASE <NomeDB, stringa, > MODIFY FILEGROUP
[SECONDARY] DEFAULT
GO
Si puo notare che al posto di ogni nome database esiste un placeholder così formato:
<NomeDB, stringa, >
Come possiamo usarlo? Come lo sostituiamo? Innanzitutto fate attenzione ai percorsi e se non avete le cartelle, createle a priori, altrimenti avrete un errore.
1) Copiate lo script su management studio in una nuova query.
2) Premete CTRL+MIUSC+M (ho la versione in inglese di SSMS, quindi non garantisco sullo shortcut) oppure aprite il menu Query --> Specify Values for Template Parameters..
3) Riempite la form che vi appare con i valori desiderati:
Come potete notare la form riassume proprio la struttura definita nel placeholder
<NomeDB, stringa, >.
4) Date l'ok ed eseguite la query.
Una volta creato il vostro template, potete aggiungerlo a quelli predefiniti di SQL Server, creando un nuovo modello direttamente dal template explorer.
Una volta creato, è sufficiente premere il destro sul template e selezionare Edit, creare il modello e salvare.
Nel caso in cui si debba reinstallare il client o aggiornare la versione, ricordate che i template sono accessibili
Application Data\Microsoft\Microsoft SQL Server\90\Tools\Shell\Templates (SQL SERVER 2005 su sistema operativo in INGLESE, in italiano la cartella è Dati Aplicazioni).
Stay Tuned