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
