<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Business Intelligen(ce) &#187; Divers</title>
	<atom:link href="https://blog.developpez.com/businessintelligence/pcategory/divers/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/businessintelligence</link>
	<description></description>
	<lastBuildDate>Fri, 27 Jun 2008 17:04:57 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Sql Server 2005 et le BULK LOAD</title>
		<link>https://blog.developpez.com/businessintelligence/p5879/divers/sql_server_2005_et_le_bulk_load</link>
		<comments>https://blog.developpez.com/businessintelligence/p5879/divers/sql_server_2005_et_le_bulk_load#comments</comments>
		<pubDate>Wed, 11 Jun 2008 14:28:02 +0000</pubDate>
		<dc:creator><![CDATA[ygrim]]></dc:creator>
				<category><![CDATA[Business Intelligence en pratique]]></category>
		<category><![CDATA[Divers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Le bulk load mode, dans Sql Server 2005, permet de faire des inscriptions minimales dans le journal d&#8217;une base de données lorsqu&#8217;on fait des chargements en bloc (BULK LOAD). L&#8217;intéret ? Et bien imaginez que vous ayez très peu de temps pour charger une ennorme quantité d&#8217;information dans votre table&#8230; Vous seriez bien contents de vous passer des ecritures autres que celles faites dans la base de données, notemment les ecritures dans le journal. Votre [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Le bulk load mode, dans Sql Server 2005, permet de faire des inscriptions minimales dans le journal d&rsquo;une base de données lorsqu&rsquo;on fait des chargements en bloc (BULK LOAD). L&rsquo;intéret ? Et bien imaginez que vous ayez très peu de temps pour charger une ennorme quantité d&rsquo;information dans votre table&#8230; Vous seriez bien contents de vous passer des ecritures autres que celles faites dans la base de données, notemment les ecritures dans le journal. Votre traitement serait beaucoup plus rapide.<br />
Autre cas, vous chargez des données dans votre entrepôt et vous cherchez un moyen facile de pouvoir revenir en arrière après un chargement. Et bien puisque le bulk load mode n&rsquo;écrit pas les données chargées en bloc dans le journal. Il vous suffit de faire une restauration de la base de données au dernier point dans le journal et le tour est joué !<br />
Cependant ! ce mode de journalisation ne fonctionne pas toujours comme on veut ! En effet certaines conditions doivent être respéctées pour pouvoir journaliser en bloc :<br />
&#8211; La table doit être vide<br />
OU<br />
&#8211; La table ne doit contenir AUCUN index cluster.<br />
Je sais, c&rsquo;est bien contraignant tout ça, surtout qu&rsquo;on a pas la chance d&rsquo;avoir une table vide tout le temps&#8230; Mais les avantages sont la, et une bonne pratique en B.I est de désactiver les index avant les chargements. Dans un package SSIS, ça se fait facilement <img src="https://blog.developpez.com/businessintelligence/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installation de Proclarity Server 6.0 (authentification SQL)</title>
		<link>https://blog.developpez.com/businessintelligence/p5793/divers/installation_de_proclarity_server_6_0_au</link>
		<comments>https://blog.developpez.com/businessintelligence/p5793/divers/installation_de_proclarity_server_6_0_au#comments</comments>
		<pubDate>Thu, 29 May 2008 19:54:02 +0000</pubDate>
		<dc:creator><![CDATA[ygrim]]></dc:creator>
				<category><![CDATA[Business Intelligence en pratique]]></category>
		<category><![CDATA[Divers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Bonjour, L&#8217;installation de proclarity 6.0 (et même les autres versions je suppose) ne fonctionne pas si le mode d&#8217;identification SQL est à Windows Seulement. Il faut que ce dernier soit à &#171;&#160;Mode Mixte&#160;&#187;. Proclarity ayant une partie Web, et ayant une base de données SQL Server à installer. Il est necessaire d&#8217;avoir ce mode d&#8217;identification pour la connection.]]></description>
				<content:encoded><![CDATA[<p>Bonjour,<br />
L&rsquo;installation de proclarity 6.0 (et même les autres versions je suppose) ne fonctionne pas si le mode d&rsquo;identification SQL est à Windows Seulement. Il faut que ce dernier soit à &laquo;&nbsp;Mode Mixte&nbsp;&raquo;. Proclarity ayant une partie Web, et ayant une base de données SQL Server à installer. Il est necessaire d&rsquo;avoir ce mode d&rsquo;identification pour la connection.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Service Pack 2 de Sql Server 2005 et plantage de Reporting Services !</title>
		<link>https://blog.developpez.com/businessintelligence/p5780/divers/service_pack_2_de_sql_server_2005_et_pla</link>
		<comments>https://blog.developpez.com/businessintelligence/p5780/divers/service_pack_2_de_sql_server_2005_et_pla#comments</comments>
		<pubDate>Wed, 28 May 2008 20:46:13 +0000</pubDate>
		<dc:creator><![CDATA[ygrim]]></dc:creator>
				<category><![CDATA[Business Intelligence en pratique]]></category>
		<category><![CDATA[Divers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[C&#8217;est en installant le SP2 de Reporting Services que je me suis rendu compte que mon serveur de rapports n&#8217;était plus disponible. Une erreur me signalant que rsReportServer.config était inaccessible&#8230; Du MS pur et dur, un service pack censé réglé des bugs en créé d&#8217;autres&#8230; En tout cas ! L&#8217;excellent Fabrice Romelard a trouvé le fix de ça : &#8211; Aller au compte SQLServer2005ReportingServicesWebServiceUser$XXXX$MSSQLSERVER dans la gestion de l&#8217;ordinateur et y ajouter les comptes ASPNET [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>C&rsquo;est en installant le SP2 de Reporting Services que je me suis rendu compte que mon serveur de rapports n&rsquo;était plus disponible. Une erreur me signalant que rsReportServer.config était inaccessible&#8230; Du MS pur et dur, un service pack censé réglé des bugs en créé d&rsquo;autres&#8230;<br />
En  tout cas ! L&rsquo;excellent Fabrice Romelard a trouvé le fix de ça :<br />
&#8211; Aller au compte SQLServer2005ReportingServicesWebServiceUser$XXXX$MSSQLSERVER dans la gestion de l&rsquo;ordinateur et y ajouter les comptes ASPNET et NETWORK SERVICE (s&rsquo;il n&rsquo;y sont pas déjà)&#8230;<br />
&#8211; Aller au fichier de configuration rsReportServer.config (généralement dans C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer) et donner au groupe précédement mentionné les droits de lecture et d&rsquo;exécution.<br />
&#8211; Jetter un coup d&rsquo;oeil dans la configuration de Reporting Services pour voir que l&rsquo;accès à la base de données de rapports s&rsquo;effectue avec le compte que vous voulez (compte de domaine de préférence).</p>
<p>Voila voila !</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Un excellent moyen de prendre en main la B.I de Microsoft</title>
		<link>https://blog.developpez.com/businessintelligence/p5766/divers/un_excellent_moyen_de_prendre_en_main_la</link>
		<comments>https://blog.developpez.com/businessintelligence/p5766/divers/un_excellent_moyen_de_prendre_en_main_la#comments</comments>
		<pubDate>Tue, 27 May 2008 15:23:54 +0000</pubDate>
		<dc:creator><![CDATA[ygrim]]></dc:creator>
				<category><![CDATA[Business Intelligence en pratique]]></category>
		<category><![CDATA[Divers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Amis et amies néophytes, c&#8217;est ici que ça se passe !! Un très bon moyen d&#8217;avoir un premier contact avec la suite B.I de MS ainsi qu&#8217;avec Sql Server (2000, 2005, 2008) : les virtual labs ! Pour ceux qui ne connaissent pas le principe, c&#8217;est une machine que MS met à la disposition des utilisateurs de façon virtuelle, c&#8217;est à dire que vous avez une page Web qui affiche un poste de travail (comme [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Amis et amies néophytes, c&rsquo;est ici que ça se passe !!<br />
Un très bon moyen d&rsquo;avoir un premier contact avec la suite B.I de MS ainsi qu&rsquo;avec Sql Server (2000, 2005, 2008) : les virtual labs !<br />
Pour ceux qui ne connaissent pas le principe, c&rsquo;est une machine que MS met à la disposition des utilisateurs de façon virtuelle, c&rsquo;est à dire que vous avez une page Web qui affiche un poste de travail (comme si vous aviez un pc dans votre pc <img src="https://blog.developpez.com/businessintelligence/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /><br />
Très simple à prendre en main et très bien documenté, les virtual labs permettent de suivre des étapes simples pour produire un résultat montrant la puissance et la simplicité de l&rsquo;outil.</p>
<p>Un très bon départ qui pourra se poursuivre avec les tutos de DVP <img src="https://blog.developpez.com/businessintelligence/wp-includes/images/smilies/icon_razz.gif" alt=":P" class="wp-smiley" /></p>
<p>Voici le lien vers les virtual labs de la suite Business Intelligence de MS : http://technet.microsoft.com/en-us/bb499788.aspx</p>
<p>Enjoy !</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Les partitions avec Sql Server 2005</title>
		<link>https://blog.developpez.com/businessintelligence/p5386/divers/les_partitions_avec_sql_server_2005</link>
		<comments>https://blog.developpez.com/businessintelligence/p5386/divers/les_partitions_avec_sql_server_2005#comments</comments>
		<pubDate>Fri, 28 Mar 2008 01:40:27 +0000</pubDate>
		<dc:creator><![CDATA[ygrim]]></dc:creator>
				<category><![CDATA[Divers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[On continue sur notre lancée avec le partitionnement sous Sql Server 2k5. Qu&#8217;est ce que le partitionnement ? Et bien c&#8217;est tout simplement le fait de diviser, physiquement, les données d&#8217;une table, d&#8217;une vue ou d&#8217;un index. La division se fait horizontalement (par lignes) et permet ainsi de diviser les grosses tables en petits morceaux mieux gérables. Pourquoi partitionner ? Imaginez que vous ayez une table de commandes qui recoit chaque jour des milliers de [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>On continue sur notre lancée avec le partitionnement sous Sql Server 2k5.<br />
<strong>Qu&rsquo;est ce que le partitionnement  ?</strong><br />
Et bien c&rsquo;est tout simplement le fait de diviser, physiquement, les données d&rsquo;une table, d&rsquo;une vue ou d&rsquo;un index. La division se fait horizontalement (par lignes) et permet ainsi de diviser les grosses tables en petits morceaux mieux gérables.<br />
<strong>Pourquoi partitionner ?</strong><br />
Imaginez que vous ayez une table de commandes qui recoit chaque jour des milliers de lignes, au fil des années, cette table commencera a devenir très grosse et très peu gérable (dans le cas ou vous voudriez ajouter un index, ou modifier une colonne, etc.). En fait, la table deviendra en définitif un gros bloc monolythique intouchable&#8230;<br />
Pourquoi ne pas avoir la possibilité de diviser cette table entre plusieurs disques durs ? ainsi, nous pourrions mettre les commandes du mois dans un disque dur à faible capacité mais à très grande vitesse et les données &laquo;&nbsp;archives&nbsp;&raquo; dans un enorme disque de plusieurs centaines de Go. Pourquoi ne pas mettre une grosse table dans plein de petits disques durs ? Nous pourrions ainsi bénéficier de parallèlisme dans la lécture et l&rsquo;ecriture des données.</p>
<p>C&rsquo;est pour ces raisons que le partitionnement existe !</p>
<p><strong>Le partitionnement sous Sql Server 2005</strong><br />
Le partitionnement se fait en trois phases :</p>
<p>1- Création d&rsquo;une fonction de partitionnement : une fonction de partitionnement est totalement indépendante de toute structure physique ou logique de la table de données. Son rôle est de définir des &laquo;&nbsp;points de partitionnement&nbsp;&raquo; ou les valeurs qui délimitent les partitions. Voici la structure de cette fonction :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">CREATE PARTITION FUNCTION partition_function_name ( input_parameter_type ) <br />
AS RANGE [ LEFT | RIGHT ] <br />
FOR VALUES ( [ boundary_value [ ,...n ] ] ) [ ; ]</div></div>
<p>Un exemple :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">create partition function maPartFonc (int) as range right for values (1000, 2000, 3000);</div></div>
<p>cette fonction à comme paramètre un entier et dit : je partitionne des que l&rsquo;entier que tu m&rsquo;a spécifié atteint 1000, 2000 ou 3000.<br />
La clause AS RANGE LEFT|RIGHT montre juste à quelle partition va aller le point de partitionnement.</p>
<p>2- Création d&rsquo;un schéma de partitionnement : un schéma de partitionnement spécifie les zones de partitionnement physiques (alors que la fonction de partitionnement désigne les points logiques) et les associent à la fonction de partitionnement, ces zones de partitionnement sont en fait les filegroups qui composent votre base de données. (si vous ne savez pas ce qu&rsquo;est un filegroup, consultez : http://msdn2.microsoft.com/en-us/library/ms176061.aspx)<br />
La syntaxe pour créer un schéma de partitionnement est la suivante :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">CREATE PARTITION SCHEME partition_scheme_name <br />
AS PARTITION partition_function_name <br />
TO ( { file_group_name | [ PRIMARY ] } [ ,...n ] )[ ; ]</div></div>
<p>Un exemple :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">create partition scheme partSchema as partition partFunc to ([FileGroup1],[FileGroup2],[FileGroup3]) <br />
go</div></div>
<p>Cette commande effectue les opérations suivantes :<br />
les données entre 0 et 1000 seront stockées dans [FileGroup1],<br />
les données entre 1001 et 2000 seront stockées dans [FileGroup2],<br />
les données entre 2001 et l&rsquo;infini seront stockées dans [FileGroup3].<br />
Si la proposition &laquo;&nbsp;les données entre x et y&nbsp;&raquo; n&rsquo;est pas claire, c&rsquo;est normal, c&rsquo;est la troisième étape <img src="https://blog.developpez.com/businessintelligence/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /></p>
<p>3- Création de tables (index ou vues) partitionnées : dernière et ultime étape, nous allons comprendre pourquoi nous avons fait les étapes 1 et 2.<br />
La syntaxe pour créer une table partitionnée est la suivante :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">CREATE TABLE <br />
[ database_name . [ schema_name ] . | schema_name . ] table_name <br />
( { &lt;column_definition&gt; | &lt;computed_column_definition&gt; } <br />
[ &lt;table_constraint&gt; ] [ ,...n ] ) <br />
[ ON { partition_scheme_name ( partition_column_name ) | filegroup <br />
| &quot;default&quot; } ] <br />
[ { TEXTIMAGE_ON { filegroup | &quot;default&quot; } ] [ ; ]</div></div>
<p>Un exemple :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">create table MaTable ( <br />
PK int identity(1,1) primary key, <br />
Nom nvarchar(50), <br />
Prenom nvarchar(80) <br />
) <br />
on partSchema(PK) <br />
go</div></div>
<p>Ce que nous venons de faire : créer une table toute bête et lui associer le shéma de partitionnement crée précédement avec la clé primaire (le int) comme paramètre de fonction de partitionnement. En clair : tous les enregistrement avec clé primaire inférieure ou égale à 1000 iront dans le FileGroup1, les enreg avec 1001 inf à PK et inf ou égl à 2000 dans FileGroup2, etc.</p>
<p>Imaginez juste ça à plus grande échelle avec des filegroups dans des disques séparés. Voila l&rsquo;utilité du partitionnement !</p>
<p><strong>SELECT sur des tables partitionnées</strong><br />
Autre truc sympa avec le partitionnement dans Sql Server 2005, c&rsquo;est la possibilité de faire des requêtes sur des partitions !!! Vu que le partitionnement est un méchanisme tout à fait transparent pour les personnes utilisant les tables, il serait embêtant pour vous, DBA qui avez partitionné la table, de parcourir toute la table avec un SELECT en sachant pertinament que les données que vous cherchez sont dans une partition X.<br />
Il est possible de cibler une partition (ou plusieurs) dans votre SELECT grace à l&rsquo;instruction $PARTITION. Exemple :<br />
<code class="codecolorer text default"><span class="text">SELECT * FROM MaTable WHERE $PARTITION.ma_fonction_de_partition(cle) = 3</span></code><br />
Cette instruction nous retourne tous les enregistrements de la partition numéro 3. Sympa non ! <img src="https://blog.developpez.com/businessintelligence/wp-includes/images/smilies/icon_biggrin.gif" alt=":D" class="wp-smiley" /><br />
Mais attendez une minute !!!! Comment connaitre le numéro de la partition ??? Et bien c&rsquo;est tout simple, la requête suivante vous donne tous les numéros de partition de votre table :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">SELECT $partition.partfunc(id) AS [numeroPart], count(*) [nombre de lignes] <br />
FROM MaTable GROUP BY $partition.partfunc(id)</div></div>
<p>de plus, cette requête nous permet d&rsquo;avoir le numéro de partition ou est stocké l&rsquo;enregistrement avec PK = 1234 :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">SELECT $partition.ma_fonction_de_partition(4000) as [numero partition];</div></div>
<p>Voila voila ! Avec ça, vous devriez être blindés !</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Les serveurs liés avec Sql Server 2005</title>
		<link>https://blog.developpez.com/businessintelligence/p5385/divers/les_serveurs_lies_avec_sql_server_2005</link>
		<comments>https://blog.developpez.com/businessintelligence/p5385/divers/les_serveurs_lies_avec_sql_server_2005#comments</comments>
		<pubDate>Fri, 28 Mar 2008 00:51:31 +0000</pubDate>
		<dc:creator><![CDATA[ygrim]]></dc:creator>
				<category><![CDATA[Divers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Bon bon bon ! Je perds mes bonnes habitudes, ça fait un bail que je n&#8217;ai rien posté sur ce blog !! Atelons nous à la tâche&#8230; Aujourd&#8217;hui : Serveurs liés !!! Les serveurs liés (linked servers) sont des serveurs de bases de données que nous lions à notre instance. Ainsi, nous pouvons exécuter des requêtes sur ces serveurs comme si les tables étaient dans notre instance. La particularité de tout cela est que les [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Bon bon bon ! Je perds mes bonnes habitudes, ça fait un bail que je n&rsquo;ai rien posté sur ce blog !! Atelons nous à la tâche&#8230;<br />
Aujourd&rsquo;hui : Serveurs liés !!!<br />
Les serveurs liés (linked servers) sont des serveurs de bases de données que nous lions à notre instance. Ainsi, nous pouvons exécuter des requêtes sur ces serveurs comme si les tables étaient dans notre instance.<br />
La particularité de tout cela est que les serveurs &laquo;&nbsp;liables&nbsp;&raquo; peuvent être des serveurs MS Sql 2k ou 2k5, mais aussi toute source de données ayant un pilote OLE DB !!! Oracle, MySql, Access, Excel, etc. Tous ces serveurs peuvent être liés à notre instance Sql Server 2k5.<br />
L&rsquo;utilité évidente, surtout en Data Warehousing, est la possibilité de transférer de gros volumes de données sans intermédiaires, donc plus rapidement. Mes expériences, et celles de mes collègues et amis, montrent qu&rsquo;il est en effet plus rapide de transférer des données avec cette méthode qu&rsquo;avec une autre (pas d&rsquo;ecriture de script d&rsquo;ETL, pas de contraintes de transformation ANSI-UTF, &#8230;).<br />
<strong>Comment lier un serveur ?</strong><br />
C&rsquo;est aussi simple qu&rsquo;une commande T-SQL ! La voici :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ] &nbsp;<br />
&nbsp; &nbsp; &nbsp;[ , [ @provider= ] 'provider_name' ] <br />
&nbsp; &nbsp; &nbsp;[ , [ @datasrc= ] 'data_source' ] &nbsp;<br />
&nbsp; &nbsp; &nbsp;[ , [ @location= ] 'location' ] &nbsp;<br />
&nbsp; &nbsp; &nbsp;[ , [ @provstr= ] 'provider_string' ] &nbsp;<br />
&nbsp; &nbsp; &nbsp;[ , [ @catalog= ] 'catalog' ]</div></div>
<p>Les paramètres sont claires : un nom pour votre serveur lié (@server), un nom de produit pour la source de données (je pense que c&rsquo;est utilisé que dans le cas de liaison de serveurs MS SQL), @datasrc la source de données en tant que tel (le nom de l&rsquo;instance SQL Server ou le chemin vers votre fichiers Excel par exemple), @location qui fait je ne sais quoi :p (je ne l&rsquo;ai jamais vu utilisée), @provstr est le nom du pilote OLE DB que vous utilisez et @catalog qui définit le catalog utilisé (la base de données).<br />
Il y&rsquo;a plein d&rsquo;exemples sur la documentation officielle, ainsi que les différents pilotes OLE DB disponibles (vous pouvez les consulter aussi dans SSMS), voici le lien :</p>
<p>http://msdn2.microsoft.com/fr-fr/library/ms190479.aspx</p>
<p>Nous allons tout de même faire un exemple tout simple :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">use master <br />
go <br />
execute sp_addlinkedserver 'baseAccess', 'Jet OLE DB', 'Microsoft.Jet.OLEDB.4.0', <br />
&nbsp; &nbsp; &nbsp; 'C:\Documents and Settings\Yazid Grim\Mes documents\linked.mdb' <br />
go</div></div>
<p>Ce code ajoute un serveur lié, qui en fait une base de données Access toute simple.<br />
Testons notre connection en faisant une requête sur cette base via SSMS. Le select est tout simple, le voici :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">select * from baseAccess...Personne</div></div>
<p>Pour peu que votre base Access contienne une table &laquo;&nbsp;Personne&nbsp;&raquo; avec des information à l&rsquo;intérieur, vous verrez le résultat sur votre SSMS !!!! C&rsquo;est pas beau tout ça !</p>
<p>Autre petit exemple pour la route, lier un fichier Excel :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">EXEC sp_addlinkedserver 'ExcelSource', <br />
&nbsp; &nbsp;'Jet 4.0', <br />
&nbsp; &nbsp;'Microsoft.Jet.OLEDB.4.0', <br />
&nbsp; &nbsp;'c:\MyData\DistExcl.xls', <br />
&nbsp; &nbsp;NULL, <br />
&nbsp; &nbsp;'Excel 5.0' <br />
GO</div></div>
<p>Aussi simple que ça <img src="https://blog.developpez.com/businessintelligence/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /></p>
<p>Une petite astuce pour la route : la procédure stockée sp_tables_ex permet de lister les tables d&rsquo;un serveur lié, dans le cas ou vous ne connaiteriez pas la structure de la base liée (ou la liste des onglets d&rsquo;un fichier excel).</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">execute sp_tables_ex 'baseAccess' <br />
go</div></div>
<p>Ce code me donne la liste des tables de ma base Access <img src="https://blog.developpez.com/businessintelligence/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /></p>
<p>C&rsquo;est tout pour les serveurs liés !</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilitaire SAC</title>
		<link>https://blog.developpez.com/businessintelligence/p5273/divers/utilitaire_sac</link>
		<comments>https://blog.developpez.com/businessintelligence/p5273/divers/utilitaire_sac#comments</comments>
		<pubDate>Wed, 12 Mar 2008 00:36:31 +0000</pubDate>
		<dc:creator><![CDATA[ygrim]]></dc:creator>
				<category><![CDATA[Divers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Un outil très pratique qui peu être utile lors de la mise en production ou lors de la mise en mirroir de bases de données. Le principe : extraire la configuration d&#8217;un moteur de base de données ou d&#8217;une instance dans un fichier xml avec la possibilité d&#8217;injecter ce fichier xml dans une autre machine (ou une autre instance). En d&#8217;autres termes, copier la configuration locale d&#8217;un serveur et la coller dans un autre &#8230;. [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Un outil très pratique qui peu être utile lors de la mise en production ou lors de la mise en mirroir de bases de données.<br />
Le principe : extraire la configuration d&rsquo;un moteur de base de données ou d&rsquo;une instance dans un fichier xml avec la possibilité d&rsquo;injecter ce fichier xml dans une autre machine (ou une autre instance). En d&rsquo;autres termes, copier la configuration locale d&rsquo;un serveur et la coller dans un autre &#8230;.</p>
<p>http://msdn2.microsoft.com/fr-fr/library/ms162800.aspx</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installer SQL Server 2000 (command line)</title>
		<link>https://blog.developpez.com/businessintelligence/p5215/divers/installer_sql_server_2000_command_line</link>
		<comments>https://blog.developpez.com/businessintelligence/p5215/divers/installer_sql_server_2000_command_line#comments</comments>
		<pubDate>Wed, 05 Mar 2008 01:04:18 +0000</pubDate>
		<dc:creator><![CDATA[ygrim]]></dc:creator>
				<category><![CDATA[Divers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Ça peut être utile pour ceux qui veulent se pratique pour faire des migrations 2000 &#8211; 2005 Excellenet Monsieur Romelard http://fromelard.free.fr/Scripts/SQL_MSDE/SQL_MSDE.pdf]]></description>
				<content:encoded><![CDATA[<p>Ça peut être utile pour ceux qui veulent se pratique pour faire des migrations 2000 &#8211; 2005<br />
Excellenet Monsieur Romelard <img src="https://blog.developpez.com/businessintelligence/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /></p>
<p>http://fromelard.free.fr/Scripts/SQL_MSDE/SQL_MSDE.pdf</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Envoyer des mails avec Sql Server 2005</title>
		<link>https://blog.developpez.com/businessintelligence/p5095/divers/envoyer_des_mails_avec_sql_server_2005</link>
		<comments>https://blog.developpez.com/businessintelligence/p5095/divers/envoyer_des_mails_avec_sql_server_2005#comments</comments>
		<pubDate>Thu, 14 Feb 2008 05:14:08 +0000</pubDate>
		<dc:creator><![CDATA[ygrim]]></dc:creator>
				<category><![CDATA[Divers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Quelle beau sentiment que de recevoir un mail de bon matin vous apprenant qu&#8217;il y a eu des erreurs lors de la copie de tables de votre base de données ou qu&#8217;une procédure stockée de validation de chiffres, qui roule chaque soir, n&#8217;a pas trouvé de bons résultats Bon, d&#8217;accord&#8230; Ce ne sont pas de si bonnes nouvelles&#8230; Mais le fait de le savoir (grace au mail) va surement nous aider à détecter le problème [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Quelle beau sentiment que de recevoir un mail de bon matin vous apprenant qu&rsquo;il y a eu des erreurs lors de la copie de tables de votre base de données ou qu&rsquo;une procédure stockée de validation de chiffres, qui roule chaque soir, n&rsquo;a pas trouvé de bons résultats <img src="https://blog.developpez.com/businessintelligence/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /><br />
Bon, d&rsquo;accord&#8230; Ce ne sont pas de si bonnes nouvelles&#8230; Mais le fait de le savoir (grace au mail) va surement nous aider à détecter le problème et le corriger avant que les utilisateurs viennent frapper à votre bureau avec la célèbre phrase : &laquo;&nbsp;euuuuuuu pourquoi ça marche pas !&nbsp;&raquo;</p>
<p>Sql server propose un utilitaire d&rsquo;evois de mail (Database Mail). La nouveauté avec les versions précédentes de SQL SERVER est qu&rsquo;il n&rsquo;est pas nécéssaire d&rsquo;avoir un client Mail (Outlook) pour envoyer des mails (beaucoup plus pratique&#8230;). Ce billet vous montrera comment configurer DataBase Mail.<br />
<strong>Préparation.</strong><br />
Tout d&rsquo;abord, il faut activer le service Database Mail. Il suffit pour cela d&rsquo;aller dans la &laquo;&nbsp;surface area configuration&nbsp;&raquo;, puis dans &laquo;&nbsp;surface area configuration for features&nbsp;&raquo;, ensuite séléctionner &laquo;&nbsp;database mail&nbsp;&raquo; et cocher la seule case qui existe <img src="https://blog.developpez.com/businessintelligence/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> Cette action va lancer le script suivant :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">exec sys.sp_configure 'Database Mail XPs', 1 <br />
go <br />
RECONFIGURE WITH OVERRIDE <br />
go</div></div>
<p>Après cette étape, database mail est activé pour notre serveur et nous pouvons passer à la configuration.<br />
<strong>Configuration.</strong><br />
Quatre étapes sont nécessaires : créer un compte utilisateur, créer un profil, ajouter le compte au profil et choisir les utilisateurs de msdb qui pourront accéder au profil (public, privé).<br />
Ces étapes sont très facilement configurables depuis Management Studio, il suffit d&rsquo;ouvrir le dossier &laquo;&nbsp;Management&nbsp;&raquo;, séléctionner Database Mail, puis, avec le bouton droit, accéder au menu contextuel et à l&rsquo;option &laquo;&nbsp;Configure database mail&nbsp;&raquo;.<br />
Ces étapes peuvent également être fait par script de la manière suivante :<br />
&#8211; Créer un compte utilisateur : voir les variables de la procédure stockée msdb.dbo.sysmail_add_account. En voici un exemple :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">EXECUTE msdb.dbo.sysmail_add_account_sp <br />
&nbsp; &nbsp; @account_name = 'monCompteMail', <br />
&nbsp; &nbsp; @description = 'Compte Database Mail', <br />
&nbsp; &nbsp; @email_address = 'moi@mondomain.com', <br />
&nbsp; &nbsp; @display_name = 'MonCompte', <br />
&nbsp; &nbsp; @username='username', <br />
&nbsp; &nbsp; @password='password', <br />
&nbsp; &nbsp; @mailserver_name = 'mail.mondomaine.com', <br />
&nbsp; &nbsp; @port=25, <br />
&nbsp; &nbsp; ...</div></div>
<p>&#8211; Créer un profil de comptes mail :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">EXECUTE msdb.dbo.sysmail_add_profile_sp <br />
&nbsp; &nbsp; &nbsp; &nbsp;@profile_name = 'ProfilMail', <br />
&nbsp; &nbsp; &nbsp; &nbsp;@description = 'Profile pour utilisateurs de database mail'</div></div>
<p>&#8211; Assigner le compte au profil : cela se fait avec la procédure stockée msdb.dbo.sp_sysmail_add_profileaccount. Il vous est possible de voir les paramètres de chaque procédure stockée via le navigateur d&rsquo;objets de Management Studio :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">EXECUTE msdb.dbo.sysmail_add_profileaccount_sp <br />
&nbsp; &nbsp; @profile_name = 'ProfilMail', <br />
&nbsp; &nbsp; @account_name = 'monCompteMail', <br />
&nbsp; &nbsp; @sequence_number = 1</div></div>
<p>Si l&rsquo;on jette un oeil sur la documentation en ligne de SQL Server 2005, on trouvera que @sequence_number désigne l&rsquo;ordre dans lequel sont triés les comptes dans le profil.</p>
<p>&#8211; Assigner le droit d&rsquo;utilisation du profil à des utilisateurs : c&rsquo;est bien beau ce qu&rsquo;on à fait mais faudrait que les utilisateurs puissent utiliser le profil !! La procédure sysmail_add_principalprofil est la pour cela :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">EXECUTE msdb.dbo.sysmail_add_principalprofile_sp <br />
&nbsp; &nbsp; @profile_name = 'ProfilMail', <br />
&nbsp; &nbsp; @principal_name = 'public', <br />
&nbsp; &nbsp; @is_default = 1 ;</div></div>
<p>Ce qu&rsquo;on fait ici, c&rsquo;est dire que le profil que nous avons crée peut être utilisé par les utilisateurs appartenant au role &lsquo;public&rsquo; pour la base de données MSDB. Nous aurions très bien pu spécifier un utilisateur particulier.</p>
<p><strong>Envoyer un mail.</strong><br />
Le moment de vérité !!! exécutons le script suivant :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">EXEC msdb.dbo.sp_send_dbmail @recipients='vous@nimportou.com', <br />
&nbsp; &nbsp; @subject = 'Test', <br />
&nbsp; &nbsp; @body = 'MON PREMIER MESSAGE !!!!', <br />
&nbsp; &nbsp; @body_format = 'HTML'</div></div>
<p>Si tout ce passe bien, vous recevrez votre mail avec le message attendu, sinon, les logs dans le event log de sql server vous permettront de déceler l&rsquo;erreur et de la corriger. N&rsquo;oubliez pas de libérer le port 25 pour l&rsquo;envoi de mail depuis votre serveur, il m&rsquo;est arrivé que le serveur de messagerie bloque tout simplement le mail&#8230;<br />
Si nous regardons la doc de Sql Server : http://msdn2.microsoft.com/fr-fr/library/ms190307.aspx. Nous pouvons voir qu&rsquo;il existe plusieurs paramètres pour exécuter et insérer une requête T-SQL dans le mail. Je nous invite à tester ces paramètres (je le ferais quand j&rsquo;aurais un serveur SMTP&#8230;).</p>
<p>Note : il est possible de modifier les profiles, comptes de messagerie, etc avec les procédures stockées msdb.dbo.sysmail_update_XXX, voir la documentation de Sql Server 2005 <img src="https://blog.developpez.com/businessintelligence/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /></p>
<p>Voila pour aujourd&rsquo;hui ! On sait démarrer, configurer et utiliser database mail. Approfondissons nos connaissances maintenant <img src="https://blog.developpez.com/businessintelligence/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>controler les utilisateurs sur une instance sql server 2005</title>
		<link>https://blog.developpez.com/businessintelligence/p5079/divers/controler_les_utilisateurs_sur_une_insta_2005</link>
		<comments>https://blog.developpez.com/businessintelligence/p5079/divers/controler_les_utilisateurs_sur_une_insta_2005#comments</comments>
		<pubDate>Tue, 12 Feb 2008 00:50:43 +0000</pubDate>
		<dc:creator><![CDATA[ygrim]]></dc:creator>
				<category><![CDATA[Divers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Petite astuce pour détecter et controler les utilisateurs connectés sur une instance sql server 2005 : &#8211; Savoir qui est connecté sur quoi : sp_who &#8211; tuer une connection (spid): kill (sp_id)]]></description>
				<content:encoded><![CDATA[<p>Petite astuce pour détecter et controler les utilisateurs connectés sur une instance sql server 2005 :<br />
&#8211; Savoir qui est connecté sur quoi : sp_who<br />
&#8211; tuer une connection (spid): kill (sp_id)</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
