Transact-SQL: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
aggiunta |
m Categorie |
||
(35 versioni intermedie di 26 utenti non mostrate) | |||
Riga 1:
{{Linguaggio di programmazione
A volte abbreviato con T-SQL '''Transact-SQL''' è l'estensione proprietaria del linguaggio [[SQL]] sviluppata da [[Microsoft]] e [[Sybase]]. La versione di Microsoft viene fornita insieme a [[Microsoft SQL Server]]. Sybase utilizza questo linguaggio in [[Adaptive Server Enterprise]], il successore di [[Sybase SQL Server]].▼
|immagine =
|didascalia =
|autore = [[Microsoft]], [[Sybase]]
|data =
|versione =
|utilizzo =
|paradigmi =
|tipizzazione =
|specifiche =
|estensione =
|influenzato_da =
|ha_influenzato =
|implementazione_riferimento =
|sistema_operativo =
|lingua =
|licenza =
|sito_web =
}}
▲
* Funzioni per [[Struttura di controllo|controllo di flusso]];
* Possibilità di definire [[variabile (informatica)|variabili]] locali.
* Varie funzioni per la manipolazione di [[stringa (informatica)|stringhe]], date, espressioni matematiche.
* Miglioramento delle [[istruzione (informatica)|istruzioni]] DELETE e UPDATE.
== Controllo di flusso e struttura del linguaggio ==
Fra le ''keyword'' con cui Transact-SQL implementa il controllo di flusso si annoverano <code>BEGIN</code> e <code>END</code>, <code>BREAK</code>, <code>CONTINUE</code>, <code>GOTO</code>, <code>IF</code> e <code>ELSE</code>, <code>RETURN</code>, <code>WAITFOR</code>, e <code>WHILE</code>.
<code>IF</code> e <code>ELSE</code> consentono l'esecuzione [[struttura di controllo|condizionale]] di blocchi di istruzioni. Il [[batch]] che segue stampa "giorno festivo" se la data corrente è
<pre>
IF DATEPART(dw, GETDATE()) = 7 OR DATEPART(dw, GETDATE()) = 1
PRINT '
ELSE
PRINT '
</pre>
Line 25 ⟶ 44:
IF DATEPART(dw, GETDATE()) = 7 OR DATEPART(dw, GETDATE()) = 1
BEGIN
PRINT '
PRINT 'Prenditi una vacanza!'
END
ELSE
BEGIN
PRINT '
PRINT 'Va a lavorare!'
END
Line 41 ⟶ 60:
<code>BREAK</code> provoca l'uscita da un loop che inizia con un <code>WHILE</code>, mentre <code>CONTINUE</code> fa eseguire il ciclo successivo del loop. Più avanti è riportato un esempio di loop <code>WHILE</code>.
== Variabili locali ==
Le variabili locali sono accessibili solo allo [[script]] che le utilizza. Transact-SQL non supporta variabili globali definite dall'utente.
<code>DECLARE</code> dichiara una variabile, attribuendole un nome ed un tipo. Per attribuirle un valore si usa SET, e successivamente la variabile può essere usata utilizzandone il nome come riferimento.
Line 71 ⟶ 90:
Qui, ad esempio, si legge il numero di righe contenute nella tabella 'Articoli', poi si aggiunge alla tabella 'SizeLog' una riga contenente il numero di righe e l'orario corrente.
== Istruzioni DELETE e UPDATE ampliate ==
In Transact-SQL, alle istruzioni DELETE e UPDATE può essere aggiunta un'opzione <code>FROM</code> che permette il collegamento ad altre tabelle mediante una <code>JOIN</code>. Nell'esempio che segue vengono cancellati tutti i record della tabella 'Utenti' che sono stati marcati con il flag 'Idle'.
<PRE>
Line 82 ⟶ 101:
</PRE>
== Critiche ==
{{citazione necessaria|Secondo i critici le nuove funzionalità di Transact-SQL non soltanto rompono la compatibilità con il linguaggio SQL standard, ma contraddicono anche l'assunto secondo cui SQL è concepito per essere un linguaggio di tipo esclusivamente [[Programmazione dichiarativa|dichiarativo]] (come effettivamente era, almeno fino alla versione standard del 1999 di [[SQL]]). In altre parole, le funzionalità aggiuntive di Transact-SQL sarebbero state implementate introducendo di fatto un vero e proprio nuovo linguaggio di tipo [[Programmazione imperativa|imperativo]], con una soluzione confusa e poco lineare, quando invece, secondo i critici, le medesime funzionalità sarebbero potute essere implementate utilizzando un altro layer di programmazione, oppure mediante lo stesso SQL.}}
== Voci correlate ==▼
* [[Microsoft SQL Server]]▼
* [[PL/SQL]]▼
* [[SQL]]▼
▲==Voci correlate==
▲*[[Microsoft SQL Server]]
▲*[[PL/SQL]]
▲*[[SQL]]
==Collegamenti esterni==▼
*{{en}}[http://msdn2.microsoft.com/en-us/library/aa260642(SQL.80).aspx Transact-SQL Reference for SQL Server 2000 (MSDN)]▼
*{{en}}[http://msdn2.microsoft.com/en-us/library/ms189826.aspx Transact-SQL Reference for SQL Server 2005 (MSDN)]▼
▲== Collegamenti esterni ==
▲* {{
▲* {{
* {{cita web|1=http://manuals.sybase.com/onlinebooks/group-as/asg1250e/refman|2=ASE Reference Manual|lingua=en|accesso=14 dicembre 2007|urlarchivio=https://web.archive.org/web/20070810113825/http://manuals.sybase.com/onlinebooks/group-as/asg1250e/refman/|dataarchivio=10 agosto 2007|urlmorto=sì}}
* {{cita web|1=http://devguru.com/technologies/t-sql/|2=DevGuru T-SQL Quick Reference|lingua=en|accesso=14 dicembre 2007|urlarchivio=https://web.archive.org/web/20070713231204/http://devguru.com/technologies/t-sql/|dataarchivio=13 luglio 2007|urlmorto=sì}}
{{Principali linguaggi di programmazione}}
[[Categoria:
▲[[id:Transact-SQL]]
|