SQL Server 2012: Frammenti di codice T-SQL

I frammenti in SQL Server 2012 sono essenzialmente i modelli che possono accelerare la costruzione di database dichiarazioni.

Saleem Hakani

Immaginate una serie di comandi che si usano sempre quando si crea un Trigger, tabella, Stored Procedure o anche un'istruzione Select. Ora immaginate di avere tutti quei comandi stabiliti e pronti all'uso. È possibile ridurre notevolmente la quantità di tempo e di codice da scrivere utilizzando i nuovi frammenti di codice T-SQL in SQL Server 2012.

Frammenti di T-SQL consentono rapidamente costruire T-SQL istruzioni senza dover ricordare i comandi o loro sintassi. È possibile utilizzare questa funzionalità per aiutare a ridurre i tempi di sviluppo e aumentare la produttività per gli sviluppatori e gli amministratori di database.

Modelli di frammento in SQL Server 2012 sono basati su XML con i valori e i campi predefiniti. Quando si utilizza un frammento di codice T-SQL, questi campi sono evidenziati ed è possibile attraverso ogni campo della scheda e cambiare i valori come richiesto.

Frammenti sono classificati per la facilità d'uso. È possibile visualizzare e selezionare vari frammenti basati sulla categoria. SQL Server 2012 introduce tre tipi di frammenti:

  • **Predefinita frammenti (o frammenti di espansione):**Questi sono i modelli di codice per vari comandi T-SQL che è possibile inserire rapidamente in codice T-SQL durante la creazione di tabelle, stored procedure, trigger e così via.
  • **Frammenti di surround:**Questi sono i modelli di codice che guida è implementare codice costruisce come iniziare fine, se, mentre e così via.
  • **Snippets personalizzati:**È possibile creare i proprio personalizzati frammenti che appariranno con il menu del frammento.

Creare Custom frammenti

Diamo un'occhiata a come creare un frammento di codice personalizzato e aggiungerlo al menu snippet. Creazione e utilizzo di un frammento è un processo in tre fasi:

  1. Creare un frammento utilizzando XML
  2. Registrare il frammento in SQL Server Management Studio (SSMS)
  3. Richiamare il frammento quando si utilizza l'Editor di Query

Per impostazione predefinita, tutti i frammenti di T-SQL vengono memorizzati nella cartella seguente e salvati come file snippet:
C: programmi Microsoft SQL Server\110\Tools\Binn\ManagementStudio\SQL\Snippets\1033

Passo 1. Creare un File del frammento di codice T-SQL con XML
Ecco un frammento di codice è possibile utilizzare per scrivere un'istruzione Select per qualsiasi tabella (esso sarà inoltre consentono di utilizzare un'istruzione CASE per un controllo di uguaglianza su una colonna):

CASE_END.SNIPPET File <?xml version="1.0" encoding="utf-8" ?> <CodeSnippets xmlns="https://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>Case-End</Title> <Description> Insert Case...End Construct. </Description> <Author> Saleem Hakani (Microsoft Corporation) </Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Code Language="SQL"> <![CDATA[ Select <Column_Name1>, <Column_Name2>, <Column_Name3>, <Column_Name4>= CASE <Column_Name4> WHEN '<value>' THEN '<Result>' WHEN '<value>' THEN '<Result>' WHEN '<value>' THEN '<Result>' WHEN '<value>' THEN '<Result>' ELSE 'Value not found' END, <Column_Name5>, <Column_Name6> From <Table_Name> Go ]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>

Passo 2. Registrare il frammento con SSMS

Una volta che hai creato questo file, utilizzare Gestione frammenti di codice per registrare il frammento con SQL Server Management Studio. È possibile aggiungere una nuova cartella in base alla categoria del frammento o importare i singoli frammenti nella cartella My frammenti di codice.

Per aggiungere una cartella snippet:

  1. Avviare SQL Server Management Studio
  2. Selezionare le voci di menu Strumenti e fare clic su Gestione frammenti di codice, che lancia la gestione frammenti di codice
  3. Clicca il "Aggiungi" pulsante
  4. Individuare la cartella contenente CASE_END.Frammento di file e fare clic sul pulsante Seleziona cartella

Il passo successivo è quello di importare il frammento in SQL Server Management Studio:

  1. Avviare SQL Server Management Studio
  2. Selezionare le voci di menu Strumenti e fare clic su Gestione frammenti di codice
  3. Fare clic sul pulsante Importa in fondo
  4. Individuare la cartella contenente il file CASE_END.snippet e selezionare il file CASE_End.snippet, quindi fare clic sul pulsante Apri

Passo 3. Richiamare o inserire un frammento di T-SQL da Editor di Query

Ora avete un frammento chiamato CASE_END che è possibile richiamare l'editor di query con il tasto di scelta rapida premendo CTRL + K + X. Quindi selezionare la cartella di categoria in cui tu hai memorizzato il frammento. Si potrebbe anche fare clic destro sul menu di scelta rapida nell'editor di query e selezionare Inserisci frammento di codice.

È inoltre possibile richiamare un frammento facendo clic destro sul menu di scelta rapida dell'editor di query. Questo si presenterà con diverse opzioni di frammento.

Utilizzando questi passaggi, puoi creare frammenti di codice T-SQL e registrarle con SQL Server Management Studio. Puoi anche creare complessi frammenti di varie attività regolare e rendere la vostra vita gestione SQL Server molto più facile.

Frammento soluzioni

Immaginate che sei uno sviluppatore o un responsabile per la protezione dei server DBA. Si può avere 500 account di accesso di SQL Server, ma non si conoscono i livello dei ruoli server a cui sono assegnati questi 500 accessi. Se si dovesse verificare singolarmente le proprietà di ogni login, sarebbe prendere ore o anche giorni. Avendo un modo automatizzato per controllare rapidamente tutti gli account di accesso server-level sarebbe ridurre il tempo di codice, nonché aumentare la precisione di codice e sviluppatore e produttività DBA.

Ecco un frammento che vi permetterà di cercare rapidamente a livello di server login e loro ruoli a livello di server e autorizzazioni. Questo elenco di snippet SecuritySPY identifica gli account di accesso di livello server e i ruoli a cui essi sono assegnate:

<?xml version="1.0" encoding="utf-8" ?> <CodeSnippets xmlns="https://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>SQL_SecuritySPY - By Saleem Hakani (Microsoft Corporation)</Title> <Description> Shortcut for checking SQL Server Server Role Permissions </Description> <Author> Saleem Hakani (Microsoft Corporation) </Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Code Language="SQL"> <![CDATA[ --Author: Saleem Hakani (Microsoft Corporation) --Website: Http://sqlcommunity.com Select 'Login Name'= Substring(upper(SUSER_SNAME(SID)),1,40), 'Login Create Date'=Convert(Varchar(24),CreateDate), 'System Admin' = Case SysAdmin When 1 then 'YES (VERIFY)' When 0 then 'NO' End, 'Security Admin' = Case SecurityAdmin When 1 then 'YES (VERIFY)' When 0 then 'NO' End, 'Server Admin' = Case ServerAdmin When 1 then 'YES (VERIFY)' When 0 then 'NO' End, 'Setup Admin' = Case SetupAdmin When 1 then 'YES (VERIFY)' When 0 then 'NO' End, 'Process Admin' = Case ProcessAdmin When 1 then 'YES (VERIFY)' When 0 then 'NO' End, 'Disk Admin' = Case DiskAdmin When 1 then 'YES (VERIFY)' When 0 then 'NO' End, 'Database Creator' = Case DBCreator When 1 then 'YES (VERIFY)' When 0 then 'NO' End from Master.Sys.SysLogins order by 3 desc Go ]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>

Ora avete un frammento chiamato SecuritySPY. È possibile richiamare con il tasto di scelta rapida dall'editor di query, come spiegato in precedenza. È anche possibile fare clic destro sul menu di scelta rapida nell'editor di query e selezionare Inserisci frammento di codice.

Creazione e utilizzo di frammenti può semplificare le attività di gestione di SQL Server. Avendo una manciata di comandi predefiniti a disposizione ti impedisce di dover fare la stessa cosa più e più volte.

Greg Steen

Saleem Hakani è un architetto principale di Microsoft con più di 18 anni di esperienza. Egli ha lavorato con SQL Server dal 1992 e su numerosi servizi su larga scala di Microsoft, ha lavorato come ingegnere e architetto negli ultimi sette anni, tra cui Hotmail, Bing e MSN. Hakani conduce la SQL Server Community in tutto il mondo per i dipendenti di Microsoft ed è un tecnico presentatore per vari eventi di Microsoft, tra cui TechReady, SQLFEST, scuola di SQL e SQLPASS.

Contenuti correlati