Transact-SQL: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
PixelBot (discussione | contributi)
m Bot: Modifico: en:Transact-SQL
m Categorie
 
(30 versioni intermedie di 24 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]].
[[en:|nome = Transact-SQL]]
|immagine =
|didascalia =
|autore = [[Microsoft]], [[Sybase]]
|data =
|versione =
|utilizzo =
|paradigmi =
|tipizzazione =
|specifiche =
|estensione =
|influenzato_da =
|ha_influenzato =
|implementazione_riferimento =
|sistema_operativo =
|lingua =
|licenza =
|sito_web =
}}
AIn [[informatica]] '''Transact-SQL''' (a volte abbreviato con T-SQL '''TransactT-SQL''') è l'estensione proprietaria del linguaggio [[SQL]] sviluppata da [[Microsoft]] e [[Sybase]]. La versione di Microsoft viene fornita insieme a [[Microsoft SQL Server]]., mentre Sybase utilizza questo linguaggio in [[Adaptive Server Enterprise]], il successore di [[Sybase SQL Server]].
 
Transact-SQL espandeEspande le prestazioni di SQL aggiungendo:
* 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 è Sabatosabato o Domenicadomenica, oppure "giorno feriale" negli altri casi.
 
<pre>
IF DATEPART(dw, GETDATE()) = 7 OR DATEPART(dw, GETDATE()) = 1
PRINT 'ÉÈ un giorno festivo.'
ELSE
PRINT 'ÉÈ un giorno feriale.'
</pre>
 
Line 24 ⟶ 44:
IF DATEPART(dw, GETDATE()) = 7 OR DATEPART(dw, GETDATE()) = 1
BEGIN
PRINT 'ÉÈ un giorno festivo.'
PRINT 'Prenditi una vacanza!'
END
ELSE
BEGIN
PRINT 'ÉÈ un giorno feriale.'
PRINT 'Va a lavorare!'
END
Line 40 ⟶ 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 70 ⟶ 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'.
 
Line 81 ⟶ 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à avrebberosarebbero potutopotute essere implementate utilizzando un altro layer di programmazione, oppure mediante lo stesso 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)]
*{{en}}[http://manuals.sybase.com/onlinebooks/group-as/asg1250e/refman ASE Reference Manual]
*{{en}}[http://devguru.com/technologies/t-sql/ DevGuru T-SQL Quick Reference]
 
== Collegamenti esterni ==
* {{en}}[cita web|http://msdn2.microsoft.com/en-us/library/aa260642(SQL.80).aspx |Transact-SQL Reference for SQL Server 2000 (MSDN)]|lingua=en}}
* {{en}}[cita web|http://msdn2.microsoft.com/en-us/library/ms189826.aspx |Transact-SQL Reference for SQL Server 2005 (MSDN)]|lingua=en}}
* {{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:Linguaggi di programmazioneSQL]]
[[Categoria:Database]]
[[Categoria:Software per base dati]]
 
[[de:Transact SQL]]
[[en:Transact-SQL]]
[[id:Transact-SQL]]
[[ja:Transact-SQL]]
[[ru:Transact-SQL]]