SQL Server Express LocalDB c'est quoi ?

Encore une nouvelle mouture de SQL Server, décidément Microsoft multiplie les moutures de son moteur de Bases de Données pourquoi ? Pour ne pas livrer la version Serveur complète que l'on trouve encore sous forme de licence pour quelques milliers d'euros, oui des milliers.

Pour développer des applications ASP.NET Core il me faut SQL Server Express LocalDB alors c'est quoi cette version de SQL Server. On peut tout de même constater que SQL Server se démocratise bien obligé par la communauté qui fournit des moteurs de bases de données SQL performants et gratuits.

Utiliser une base de données et ASP.NET Core

On nous dit que LocalDB est une version allégée du moteur de base de données SQL Server Express et on est bien obligé de le croire. Et moi qui croyais que SQL Server Express était déjà une version allégée de MS SQL Server, à n'y rien comprendre.

Bref ! LocalDB est le moteur intégré et livré avec ASP.NET Core.


SQL Server Express LocalDB le moteur SQL de ASP.NET Core

Et pour faire le tour du développement d'applications web avec ASP.NET Core le tutoriel suivant les parfaitement bien fait un CRUD complet :

Tutoriel : Créer une application web de pages Razor avec ASP.NET Core

Et on voit de plus en plus de code par exemple l'aspect "Migration" qui créé automatiquement du code pour créer votre base de donnée à la première exécution de l'application et qui prendre en charge les modifications de structure.



Entity Framework - Utilisation de Code First Migrations

Comment utiliser le répertoire "Migrations" que l'on voit maintenant dans les applications Microsoft ASP.NET WebAPI ou MVC dont on trouve les codes sources sur Internet ?

Ce truc, cet article est assez cool pour que je prenne note alors que je ne suis pas venu ici depuis presque 1 an. Je cherche à travailler avec Visual Studio 20017 sur les applications ASP.NET JS, MVC, WebAPI et je trouve dans exemples d'application dans lesquels il y a un répertoire "Migrations" mais qu'en faire ?

Si l'application possède une fonctionnalité de création d'un élément de la base. La base sera crée toute seule comme dans l'exemple suivant :

BookService-master
https://docs.microsoft.com/en-us/aspnet/web-api/overview/data/using-web-api-with-entity-framework/part-1

Et s'il n'y a pas de création d'enregistrement, il faut créer la BD comme dans l'exemple :

https://github.com/MikeWasson/MoviesSPA

En faisant : Afficher la Console du gestionnaire de packages



Puis en exécutant la commande suivante :

PM> update-database

Dans la console, voici le résultat :


Comme c'est expliqué dans l'article Ici.

Voilà, c'est assez cool pour que je prenne note dans mon Blog moi aussi. Cet article vous explique également comment générer ce répertoire et son contenu dans une nouvelle application.

avec les commandes suivantes :

PM>Enabled-Migrations
PM>Add-Migration MyMigration
PM>Update-Database

De la documentation sur le site de Microsoft

Have very fun!

Microsoft Business Intelligence (BI) Data Tools SQL Server

Vous avez besoin d'informations, de news sur SQL Server et ses Data Tools ? De suivre les évolutions de la Business Intelligence. Alors voici un des meilleurs sites pour cela, le : Microsoft Business Intelligence (Data Tools)

Microsoft Business Intelligence (Data Tools)

SQL Server BI Data Tools

SSRS : SQL Server Reporting Services

SSIS : SQL Server Integration Services

SSAS : SQL Server Analysis Services

Windows PowerShell : Permet d'automatiser les tâches.

Microsoft Power BI : C'est un ensemble de services et de fonctionnalités en ligne offrant un environnement permettant de promouvoir la BI en libre-service auprès de l'utilisateur final, de prendre en charge les requêtes et le pivot d'alimentation. Il fournit une plate-forme à l'utilisateur final pour l'aider à importer des données, créer des ensembles de données et créer des rapports et des tableaux de bord.

Power BI
Power BI

Enorme site sur la BI dans l'univers SQL server de Microsoft. Des exemples concrets, des mises en situation dans le monde du BI, du code T-SQL. Tout ce qu'il faut... et plus encore.

Une vraie découverte ce blog qui présente de façon intensive toutes ces technologies Microsoft cela vous permet de vous plonger rapidement au cœur des sujets important de la Business Intelligence en particulier

Peut-on encore manager une database SDF avec Visual Studio 2013 ?

Mais que ce que c'est que cette question ? Et puis elle implique autre chose, je me suis posé cette question lors du transfert d'une application MVC 3 vers MVC 4 et je suis tombé sur cet os !

Je cherche des éléments sur les applications MVC et je tombe sur ce projet du codeplex :

http://mvcmusicstore.codeplex.com/

Ca à l'air bien, de correspondre à ce que je souhaite étudier. Seulement voilà, après avoir transformer cette pauvre application MVC 3 en application MVC 4, c'est à dire de refaire les références vers le Framework 4.0, bricoler le Web.config, tout ce qui va bien, cela ne fonctionne toujours pas !

J'ai une erreur de merde comme toujours avec MVC :

No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlServerCe.4.0'. Make sure the provider is registered in the 'entityFramework' section of the application config file. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information.

Ca fait peur ! Quelle merde ce truc !

Erreur SDF database in Visual Studio 2013
Que c'est laid, que c'est moche :

SQL Server c'est toujours aussi pourri !
Ne cherchez pas à suivre les messages d'erreurs indiqués ici, c'est du bidon de chez Redmond. Des conneries à n'en plus finir car ils se prennent eux même les pieds dans leurs pinceaux !

Solution


Is Microsoft dropping support for SDF database files in Visual Studio?

The answer is yes: Microsoft is silently dropping support (as usual IMHO) to Sql Compact Edition.

It started abandoning Sql CE 3.5 in Vs2012 It continued dropping Sql CE in Sql Management Studio 2012 and finally in VS2013.

Vous trouverez des liens vers les outils qui permettent de continuer à travailler avec des base sdf.

MSDN :


Y-en a vraiment marre croyez-moi entre les incompatibilités des différents MVC 2 3 4 5. SQL server qui est toujours aussi délicat (pourri) à manager ...

Comment se connecter à SQL Server

Comment connecter mon "Explorateur de serveurs" de Visual Studio à un SQL Server distant sur une autre machine. Voilà mon sujet du matin ...

Dans Visual Studio "Explorateur de serveurs" je vois bien que je peux ajouter un serveur ...

Visual Studio - Explorateur de serveurs - Ajouter un serveur...
Mais quand je tente d'ajouter un serveur que je connais c'est impossible alors quel est le problème ?

La littérature Microsoft MSDN sur le sujet est comme toujours absconse sur ce genre de point crutial mais tentons d'en sous-tirer la substantifique moelle ...

https://msdn.microsoft.com/fr-fr/library/ms188642.aspx
Logging In to SQL Server ... Ici on m'apprend à former le nom du Serveur SQL à atteindre.

On parle plutôt de se connecter à l'aide de SQL Management Studio ce que je vais faire pour l'instant. J'essaye tout un tas de truc mais rien à faire, toujours le même message :

SQL Server n'est pas configuré pour autoriser les connexion distantes.
Donc le SQL Server auquel je souhaite me connecter devrait se nommer en gros : COMPUTER-NAME\SQLEXPRESS.

En bas de la page ms188642, pour aller plus loin je trouve la page suivante :

Vérifier la configuration du Serveur SQL

Pour réaliser ce que je souhaite, c'est à dire de connecter une application ASP.NET sur un Serveur SQL, il me faut une machine Serveur, j'ai à ma disposition une machine Virtuelle OVH, Windows 2008 Server R2.

Sql Server Configuration Manager

Utilisation de l'outil : Menu Démarrer->Microsoft SQL Server->SQL Server Configuration Manager :


Vérification de l'existence et de la configuration du Serveur SQL :

Gestion des Services SQL Server
Et par exemple, une des raisons pour lesquels on ne peut pas se connecter à SQL Server c'est que l'instance du Serveur n'est pas démarrée.

Dans ce cas simplement faire Bouton droit -> Démarrer

Sql Server Configuration Manager - Démarrer une instance d'SQL Server
Une autre raison : vous pouvez avoir changer le nom de la machine auquel cas le nom de l'instance du serveur aura changé il faudra reconfigurer les connexions.

Et sinon vous avez :

Microsoft - Résoudre les problèmes de connexion au moteur de base de données SQL Server
Je crois que l'on peut dire qu'ils (les ingé de Redmonds) ont fait un peu de progrès pour avoir une documentation un peu complète ...

Voilà : C'était donc comment utiliser le Sql Server Configuration Manager pour vérifier l'état de votre instance d'SQL Server.

Gérer les autorisation d'accès aux bases de données SQL Server Express

SQL Server est un véritable générateur de problèmes de sécurité et de problèmes d'autorisations. Alors voici comment gérer les autorisations avec SQL Server.

Je veux attacher une base de données qui ne soit pas dans le répertoire autorisé : C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA

J'obtiens immédiatement un message d'erreur :

Impossible d'ouvrir le fichier physique - Une exception s'est produite lors de l'exécution d'une instruction ou d'un lot Transact-SQL
Sympa non ?

Je regarde les autorisations du répertoire DATA au fin fond de l'arborescence SQL Server :

Autorisations de sécurité du répertoire DATA
et je remarque ce nom d'utilisateurs : MSSQL$SQLEXPRESS ou plutôt de groupe d'utilisateurs. Le fait qu'SQL Server soit incapable d'attacher la base de mon répertoire vient du fait que le répertoire ne possède pas les autorisations de  MSSQL$SQLEXPRESS !

Solution autorisations SQL Server

Si je veux pouvoir attacher ma base facilement, il faut que je l'a copie dans le répertoire :C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA

Je sais c'est un peu lâche mais la prochaine fois on apprendra comment ajouter les autorisations du groupe d'utilisateurs MSSQL$SQLEXPRESS à un autre répertoire ...




Comment installer SQL Management Studio sur SQL Server 2012 ?

Vous souhaitez installer SQL Management Studio sur SQL Server Express 2012 ? Vous pensez que la question est simple mais avec SQL Server rien n'est simple alors prenons des notes ...

Je vais sur le site de téléchargement de Microsoft Download Center :
http://www.microsoft.com/fr-fr/download/details.aspx?id=29062

Download Center SQL Server 2012 Express
Je clique sur le bouton Télécharger :

SQL Server 2012 Express édition
Je choisie les deux .exe qui m'intéressent et déjà là , je vois que j'ai un exécutable particulier pour SQL Management Studio ... c'est curieux non ? C'est une tradition stupide d'SQLServer, ils pensent que l'on peut installer le moteur de BD sans l'interface graphique ...

Installation de SQL Server 2012

Je vous passe l'installe d'SQL Server qui dure la vie d'un vampire. Je suppose qu'il faut d'abord installer SQL Server avant Management Studio ...  ce n'est pas sûr. Remarque : l'exe de SQL Server pèse 146 MB tandis que pour l'exe de Management Studio c'est 630 MB !?

Moi, j'ai d'abord lancé l'installe de SQLEXPRE_x64_FRA et je vois dans mon menu démarrer, un tas de trucs :

SQL Server 2012
Au passage je note que 2012 s’appuie sur une Installe de 2008. Mais toujours pas de SQL Management Studio !?

Installation de SQL Management Studio

Les choses sérieuse commencent. En fait, il faut relancer tout le processus d'installation de SQL Server et faire les bons choix.

Ajouter des fonctionnalités à une instance existante ...

SQL Mangement Studio Installation - Ajouter des fonctionnalités à une instance existante de SQL Server 2012
Cliquez sur "Suivant" :

SQL Mangement Studio -Outils de gestion de base
Cochez la case "Outils de gestion - De base" dans la "Description du composant" vous pouvez voir qu'il s'agit bien de SQL Management Studio.

Cliquez sur "Suivant".

Vérifiez que SQL Server Management Studio est installé.
Menu Démarrer->Tous les programmes->Microsoft SQL Server :

Vérifier l'installation de SQL Server Management Studio Express
Voilà vous pouvez maintenant gérer vos Bases SQL Server. 

Have Fun !



SQL Server 2012 - Error - Impossible de modifier la table que j'ai créé

C'est toujours la même sauce avec SQL Server, quand cesseront-ils de faire chier l'utilisateur avec des options par défaut qui sont l'inverse du bon sens !

Ce matin, un lapin ... non, plus sérieusement, ce matin je lance "Sql sever management studio 2012" pour la première fois. J'utilise sql server management studio 2005 depuis que je suis tout petit et mes souvenirs sont un peu effacés mais petit à petit les sueurs froides me reprennent et les imbécillités de cet outil et toutes ses saloperies qui me reviennent.

J'avais tout trouvé, même la commande débile :
>grant access / all à exécuter sur une DB sinon on ne peut rien en faire.

Mais ce matin, à nouveau un problème idiot impossible de modifier la table que je viens de créer !

Problème : Modifier une table

Et voici que cela recommence ! Je créé une table, je veux la modifier et BOUM :

SQL Server Management Studio 2012 : Saving changes

Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created. You have either made changes to a table that can't...

bla bla bla ... bla bla bla.

C'est insupportable alors j'aimerais rendre un vibrant hommage à ce lien qui m'a sorti d'affaire :

http://blog.wassupy.com/2012/11/sql-server-2012-saving-changes-is-not.html

Solution : Cocher la case "re-creation"

Menu : Tools -> Article : Options :

Cochez la case : Prevent saving changes that require table re-creation
Je n'en suis pas totalement certain mais il me semble bien que la même mésaventure existait déjà du temps de SQL Server 2005.

AdventureWorks Sample Application - ASP.NET MVC

En effectuant une recherche sur les Samples qui utilisent ou démontrent l'utilisation de la base de données AdventureWorks, on trouve ce projet du codeplex :

Sample app for Adventureworks database
Projet du CodePlex latest version : advsampleapp-15464

Mais le blog de supertigerzou est en chinois !

En cherchant dans "Microsoft All-In-One Code Framework Sample Browser" :

AdventureWorks2008 - Application Sample
On trouve le projet HappyNet de Cyril Cathala que j'ai déjà longuement décrit dans mon blog c#.net.

advsampleapp-15464

Je reviens donc sur le projet advsampleapp-15464, en me disant que c'est bien dommage qu'il ne soit pas mieux documenté. En explorant mieux ce projet au sein du codeplex, rien n'est renseigné, la documentation retourne inlassablement vers le blog en chinois !? Et même si googlechrome me propose de traduire les pages rien de bien probant sur ce projet. On trouvera quand même quelques photos de supertigerzou qui semble être un vrai un bon développeur de l'Université Huazhong des Jiaotong University admis en 1994.

Alors qu'y a t-il dans ce projet ?

Structure de la solution advsampleapp-15464\Adventureworks\Adventureworks.sln :

AdventureWorks Sample Application Solution
Je l'ai ouvert avec Visual Studio 2010 Ultimate. Je me rends compte que je ne peux pas charger le projet Adventureworks.Web pourquoi ? Cette solution utilise allègrement les "NuGet Packages" elle ne conviendra donc pas aux versions Express de Visual Studio.

Liste des NuGet packages installés dans la solution advsampleapp-15464\Adventureworks\packages :
jQuery.1.5.2
jQuery.vsdoc.1.5.2
MefContrib.1.0.0.3
MefContrib.MVC3.1.0.0.3
Ninject.2.2.0.0
Ninject.MVC3.0.3
WebActivator.1.1.0.0
WebActivator.1.4

MefContrib ? Tient ce projet utilise Managed Extensible Framework ...

J'installe donc ASP.NET MVC 3, en anglais ... lol :
Installer ASP.NET MVC3
ASP.NET MVC 3 Installation Completed
Release Notes

Je clique à nouveau sur le projet Adventureworks.Web bouton droit "Reload Project" mais rien n'y fait :

AdventureWorks Sample App - Impossible de charger le projet
J'installe ASP.NET MVC 4, même chose. Mais quel est donc le type du projet Adventureworks.Web ?

Vous cherchez quel est le type d'un projet Visual Studio, regardez sur cette page :
http://www.mztools.com/Articles/2008/MZ2008017.aspx

J'y trouve l'informations suivante :
<ProjectTypeGuids>
ASP.NET MVC 3.0 {E53F8FEA-EAE0-44A6-8774-FFD645390401}
ASP.NET MVC 4.0 {E3E379DF-F4C6-4180-9B81-6769533ABE47}

Lorsque je créé une application MvcApplication1 mon Visual Studio ne me propose que MVC 4 :
<ProjectTypeGuids>{E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

Et le projet Adventureworks.Web est en MVC 3
J'ai pourtant installé MVC 3 et MVC 4 mais mon Visual Studio ne me propose pas la création d'une application MVC 3



AdventureWorks2008 - Database Reference

Les références Microsoft dans le CodePlex sont un peu complexes à utiliser, il est difficile de s'y retrouver entre toutes ces versions de base de données. Voici donc quelques notes.

http://sqlserversamples.codeplex.com/
Microsoft SQL Server Community Projects & Samples. C'est la page d'entrée avec toutes les versions d'exemple de Data Base on y trouve également Northwind.

http://msftdbprodsamples.codeplex.com/Releases/
Références Microsoft sur la base AdventureWorks, on y trouvera des versions pour SQL Serber 2012, pour SQL Server 20008 R2 ...

Tellement compliqué de s'y retrouvé que l'on trouve dans le forum de discussion SQL Server une question :

AdventureWorks_Data.mdf, where is it?

Trouver AdventureWorks2008

Si vous installez SQL Server 2008 Express Edition la base de donnée AdventureWorks2008 se trouve dans le répertoire : C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\AdventureWorks_Data.mdf

Et donc l'installation d'une version Express de SQL Server est un bon moyen de récupérer une base AdventureWorks à la version de votre SQL Server ...

Documentation automatique de AdventureWorks2008

http://www.elsasoft.org/samples/...adventureworks/SqlServe..AdventureWorks2008/default.htm
Toute la base expliquée champ par champ.

Travail réalisé avec l'outil SqlSpec de Elsasoft.

Base de données multidimensionnelles - Cube - Hypercube - SGDB - SGDBR - RDBMS

Je me suis toujours demandé pourquoi les DBA (Data Base Administrateur) avaient un tel jargon et découvrant qu'en fait une relation n'était qu'un ID unique partager entre deux tables et qu'une clef primaire et une clef étrangère ou ne servaient qu'à préserver l'intégrité des données d'une table et à établir une relation entre deux tables, j'étais un peu déçu.

SGDB : Système de Gestion de Bases de Données en fait n'existe plus parce que maintenant tous les SGDB sont en fait des SGDBR c'est à dire des Systèmes de Gestion de Bases de Données Relationnels.

Ce qui donne en anglais : RDBMS pour Relational Data Base Management System.

Mais alors c'est quoi un Cube ?

Et là, on me dit qu'une base de données multidimensionnelle n'est pas autre chose qu'un cube et que le plus souvent, un cube a trois dimensions mais alors dans ce cas c'est quoi un hypercube !? 

Une base multidimensionnelle est contenue dans une seule table, elle peut être analysée avec un nouveau type d'outil : OLAP pour On-Line Analytical Processing

Tandis qu'une BDR s'analyse avec des outils OLTP pour On-Line Transaction Processing.

Je suis sûr que vous êtes comme moi, vous faisiez de l'OLTP sans le savoir. Bon et bien maintenant on le sait ... Mais franchement savoir qu'une base de données multidimensionnelle est contenue dans une seule table m'effraye un peu. En effet j'ai croisé des systèmes dans lesquels le DBA avait choisi de ne créer qu'une seule table, pour des problèmes de performance disait-il et franchement s'était la pagaille et on avait souvent l'envie de lui dire mais tu sais que tu peux créer un modèle relationnel ... Mais tout cela se mords un peu la queue.

En maintenant c'est quoi OLAP ?

On a tous fait des maths et l'on sait que les matrices nous permettent de concevoir des univers à n dimensions et d'y faire des calculs par exemple des calculs de distances : racine(x^2+y^2+z^2+ ...).

Magnifique travail, didactique, progressif et en bonus la surprise à l'Etape 8 une feuille Microsoft Excel avec l'utilisation du fameux outil "Rapport de tableau croisé dynamique".



Langage SQL - Les meilleurs cours, les meilleurs exemples

Autant cela parait simple d'écrire une requête SQL, autant je trouve qu'il est difficile de démarrer et que très vite les choses se compliquent.

Voici mes liens sur les meilleurs cours en SQL :

http://sqlpro.developpez.com/cours/sqlaz/fondements/#L1

http://sqlpro.developpez.com/cours/sqlaz/jointures/#LI

Fix error "Failed to generate a user instance of SQL Server due to a failure in starting the process for the user instance."

Au moment de la première installation de SQL Server et de Visual Studio sur une plateforme de développement logiciel,  vous ne pouvez pas utiliser SQL Server avec Visual Studio !? Vous êtes surpris ... ? Et pourtant c'est la vérité ! Voici donc la solution ...

Solution pour utiliser Visual Studio avec SQL Server

Parfois, j'ai peur que des soucis résolus disparaissent des serveurs et donc je copie la solution chez moi ... ;)
Windows 7, SQL Serveur 2008 Express Visual Studio 2010, je rencontre à nouveau ce problème. Si ce n'est pas une honte et ben oui cet idiot de SQL Serveur par défaut à l'installation, il n'autorise pas la création d'une instance de serveur par un utilisateur et VS (Visual Studio) ne peut donc pas l'utiliser (et vous trouvez ça normal ?!)

Les sources ici.

Have you ever tried to create a user instance database from Visual Studio on SQL Server 2005 Express (or above) and got this terrible (can it be more confusing?) message:

"Failed to generate a user instance of SQL Server due to a failure in starting the process for the user instance. The connection will be closed." If you did and tried to find how to resolve this you probably Googled (or Binged) for hours without being able to find the solution that really works.

Well lets put an end to that. Two simple things need to be done:

Step 1. Enabling User Instances on your SQL Server installation First we are gonna make sure we have enabled User Instances for SQL Server installation.

Go to Query Window in SQL Server Management Studio and type this:

exec sp_configure 'user instances enabled', 1.
Go 
Reconfigure
Run this query and then restart the SQL Server.

Step 2. Deleting old files
Now we need to delete any old User Instances.
Go to your C drive and find and completely DELETE this path (and all files inside):

C:\Documents and Settings\YOUR_USERNAME\Local Settings\Application Data\Microsoft\Microsoft SQL Server Data\SQLEXPRESS

(Dont forget to replace the green text in the path with your current username (if you are not sure just go to C:\Documents and Settings\ path to figure it out).

After deleting this dir you can go to Visual Studio, create ASP.NET WebSite and click on your App_Data folder and choose Add New Item and then choose SQL Server Database and it should work!!!

Addendum

Depuis que j'ai écris ce post, il me semble bien que l'article n'est plus accessible sur le site de aspdotnetfaq.
Et que la syntaxe de la commande est plutôt :

exec sp_configure 'user instances enabled', '1'

pas besoin du Go ... Have fun !

Autres lectures sur le sujet 

http://stackoverflow.com/questions/20865437/the-configuration-option-user-instances-enabled-does-not-exist
The problem is known issue. SQL Express cannot create a user instance using the set of engine files in your local app data folder, deleting them should allow sql server to recreate them with the correct credentials for you to F5 successfully.

Prevent saving changes that require the table to be re-created

J'ai créé une Base de Données dans un projet Visual Studio 2010 avec le Server Explorer mais je dois faire une modification de définition de ma nouvelle Base de Données mais je n'arrive pas à sauvegarder cette modification. Cet imbécile de SQL Server s'entête à me renvoyer un message :

Saving changes is not permitted. The changes you have made resuire the following tables to be dropped and re-created. You have either made changes to a table that can't bo re-created or enable the option Prevent saving changes that requires the table to be re-created.

Requirements : Visual Studio 2010, SQL Express, Visual Studio 2019

Saving changes is not permitted. The changes you have made resuire the following tables to be dropped and re-created. You have either made changes to a table that can't bo re-created or enable the option Prevent saving changes that requires the table to be re-created.
The changes you have made resuire the following tables to be dropped and re-created.
Et en 2019, c'est toujours valable !

Je crois que le plus idiot de ce truc c'est que le message de cette textbox n'est pas copiable pour pouvoir googooliser le plus rapidement possible.

Problème, impossible de sauver les modifications

Je modifie un clef d'index primaire :
Identity Specification :
  Is Identity : Yes
  Identity Increment : 1

Et au moment de sauvegarder mes modifications c'est la catastrophe :


Prevent saving changes that require table re-creation
Problème au moment de sauver les modifications de ma Base de Données SQL Server

Solution : décocher la case "Prevent saving changes"

Cette option se trouve dans le Menu :

Tools -> Article : Options -> Database Tools -> Table and Database Designers :
Décocher la case : Prevent saving changes that require table re-creation

Tools, Options, Database Tools
Les options de Visual Studio qui me permettent de modifier ma Base de Données SQL Server
Oui mais au moment où je cherche cette option dans mon MS Management Studio 2019 je ne la trouve plus ! Grrrr

En 2019 cette option existe encore et se trouve déplacée ici :

Tools -> Options -> Designers -> Table and Database Designers

You have either made changes to a table that can't bo re-created or enable the option Prevent saving changes that requires the table to be re-created.
You have either made changes to a table that can't bo re-created or enable the option Prevent saving changes that requires the table to be re-created.

Conclusion :

L'administration et la configuration des Bases de Données SLQ Server sont rendue difficiles par tout un tas d'options dont on ne devrait jamais avoir à se préoccuper ...

Attention : Une fois les modifications apportées à la base de données, il faut refaire les objets attachés à cette base, je pense notamment aux objets "Linq To Sql" ou "Entity Models" ...

IDENTITY_INSERT is set to OFF

Comment setter IDENTITY_INSERT à ON ?

Description du problème rencontré :

J'ai créé une nouvelle Database EmployeeDB pour un exemple de CRUD en WPF C#.NET utilisant un "Link To SQL Classes" mais au moment de l'exécution, j'ai une erreur : Cannot insert explicit value for identity column in table 'Employee' when IDENTITY_INSERT is set to OFF.

Est ce vraiment le problème ? Qu'elle est la solution ?

Les sources du projet Visual Studio C# sont ici :
CRUDDataGridWPF

Comment corriger l'erreur DENTITY_INSERT is set to OFF

Tentative de solution 1

Je tente de faire ce qui est préconisé par certains forums ...

Dans SQL Server Management Studio, j'attache ma base (ou Joindre)
Je créé une requette :

USE EmployeeDB;
GO
SET IDENTITY_INSERT dbo.Employee ON
GO

Et je l'exécute ...

Exécution de la requête SET IDENTITY_INSERT sur la Table de la Base de Données
Cela ne fonctionne pas ! La même erreur est toujours là !

Comme j'ai modifié la table Enployee, je prend la précaution de refaire mon "Link To SQL Classes" en Drag and Droppant ma table depuis le Server Explorer dans mon objet .dbml :

En drag and droppant ma table je recréé le Employee.dbml
Je n'ai plus l'erreur ...
Mais lorsque j'exécute à nouveau mon exemple, les données ne sont pas INSERTées dans la BD !

Je regarde alors d'un peu plus près le projet de référence et je vois dans l'App.config :

            connectionString="Data Source=B314LTRV\SQLEXPRESS;Initial Catalog=EmployeeDB;Integrated Security=True"

Mais d'où vient cette source ? B314LTRV !?

Tentative de solution 2

Je supprime l'objet EmployeeDB.dbml et je refais l'ajout d'item "Link To SQL Classes" en prenant soins de supprimer auparavant le fichier :
\\CRUDDataGridWPF\CRUDDataGridWPF\Properties\Settings.settings

Et de nettoyer le fichier :
\\CRUDDataGridWPF\CRUDDataGridWPF\App.config

Dernier point :
La BD EmployeeDB.mdf qui se trouve dans  le répertoire principal de mon projet possède l'attribut : "Copy to ouput directory" à Copy always cela peut engendrer des petits soucis, je le mets à "Copy if newer" ...

Conclusion

Le maniement des Base de Données SQL Server dans les projets .NET est souvent une très grosse source de problèmes. Il est difficile de réaliser des projets véritablement portables et réinstallables facilement sur une nouvelle plateforme.