1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| SELECT
'<p>Microsoft SQL Server propose plusieurs fonctionnements :</p>
<h3><span id="Langages" class="mw-headline">Langages</span><span class="mw-editsection">[<a title="Modifier la section : Langages" href="/w/index.php?title=Microsoft_SQL_Server&action=edit&section=2">modifier</a>]</span></h3>
<p>Pour les requêtes, SQL Server utilise <a title="Transact-SQL" href="/wiki/Transact-SQL">T-SQL</a> (Transact-SQL), il s''agit d''une implémentation de <a title="Structured Query Language" href="/wiki/Structured_Query_Language">SQL</a> qui prend en charge les procédures stockées et les déclencheurs (<i>trigger</i>). Le <a title="Transact-SQL" href="/wiki/Transact-SQL">T-SQL</a> est incompatible avec le <a title="PL/SQL" href="/wiki/PL/SQL">PL/SQL</a> d''<a title="Oracle Database" href="/wiki/Oracle_Database">Oracle</a>.</p>
<p>Pour les transferts de données, SQL Server utilise le format TDS (Tabular Data Stream) qui a été implémenté dans d''autres bases de données (en particulier dans son homologue <a title="Sybase" href="/wiki/Sybase">Sybase</a>) et dont les spécifications sont publiques. Une implémentation <a class="mw-redirect" title="Open Source" href="/wiki/Open_Source">Open Source</a> d''un client TDS est disponible et constitue la base du client SQL Server du projet <a title="Mono (logiciel)" href="/wiki/Mono_(logiciel)">Mono</a> : <i>FreeTDS</i>.</p>
<h3><span id="Relations" class="mw-headline">Relations</span><span class="mw-editsection">[<a title="Modifier la section : Relations" href="/w/index.php?title=Microsoft_SQL_Server&action=edit&section=3">modifier</a>]</span></h3>
<p>SQL Server est un <a title="Système de gestion de base de données" href="/wiki/Syst%C3%A8me_de_gestion_de_base_de_donn%C3%A9es">SGBD</a> relationnel. Il est possible de définir des relations entre les tables de façon à garantir fortement l''intégrité des données qui y sont stockées. Ces relations peuvent être utilisées pour modifier ou supprimer en chaîne des <a title="Enregistrement (informatique)" href="/wiki/Enregistrement_(informatique)">enregistrements</a> liés.</p>
<h3><span id="Transactions" class="mw-headline">Transactions</span><span class="mw-editsection">[<a title="Modifier la section : Transactions" href="/w/index.php?title=Microsoft_SQL_Server&action=edit&section=4">modifier</a>]</span></h3>
<p>SQL Server est un <a title="Système de gestion de base de données" href="/wiki/Syst%C3%A8me_de_gestion_de_base_de_donn%C3%A9es">SGBD</a> transactionnel. Il est capable de préparer des modifications sur les données d''une base et de les valider ou de les annuler d''un bloc. Cela garantit l''intégrité des informations stockées dans la base.</p>
<p>Lors d''une transaction, les blocs de données contenant les lignes de données modifiées par cette transaction sont verrouillés. Les autres utilisateurs, en fonction du niveau d''isolation choisi, doivent attendre ou non la fin de la transaction pour pouvoir les modifier à nouveau.</p>
<p>Les verrouillages s''effectuent au niveau des lignes, pages, extensions, tables ou base de données. SQL Server ne verrouille que les ressources dont il a besoin (par défaut les enregistrements) et en fonction des besoins peut verrouiller à un niveau plus élevé (pages ou objet). Cela évite aux utilisateurs d''attendre la fin d''une transaction pour mettre à jour des lignes de données qui n''ont pas été touchées par une modification et permet de diminuer la quantité de ressources consommées</p>
<p>Les transactions sont enregistrées dans le journal de transaction et les modifications des données sont intégrées à la base de données lors de points de contrôle (check point). Il est possible de forcer un point de contrôle grâce à l''instruction <b>CHECKPOINT</b></p>
<p>Le journal des transactions peut être conservé de trois manières différentes :</p>' AS Texte INTO #TexteATraiter
DECLARE @Paragraphes TABLE (Paragraphe VARCHAR(MAX))
DECLARE @Paragraphe VARCHAR(8000)
DECLARE @getParagraphe CURSOR
SET @getParagraphe = CURSOR FOR SELECT
SUBSTRING(Texte, 1, (CHARINDEX('</p>', Texte) + 3)) AS Paragraphe
FROM #TexteATraiter
OPEN @getParagraphe
FETCH NEXT
FROM @getParagraphe INTO @Paragraphe
WHILE ( SELECT
LEN(Texte)
FROM #TexteATraiter) >0
BEGIN
INSERT INTO @Paragraphes
SELECT
SUBSTRING(Texte, 1, (CHARINDEX('</p>', Texte) + 3)) AS Paragraphe
FROM #TexteATraiter
UPDATE #TexteATraiter
SET Texte = SUBSTRING(Texte, (CHARINDEX('</p>', Texte) + 4), 2147483647)
FETCH NEXT
FROM @getParagraphe INTO @Paragraphe
END
CLOSE @getParagraphe
DEALLOCATE @getParagraphe
SELECT
*
FROM @Paragraphes |
Partager