Generation automatique des column d'un table

Generation automatique des column d'un table - SQL/NoSQL - Programmation

Marsh Posté le 15-07-2008 à 10:39:27    

Bonjour,
Je suis entrain de faire un stage pour creation des sites web on ASP.NET 2.0 et MSSQL 2005. Je seche au niveau d'une partie de la base de données SQL. En resumé j'ai deux table SQL Prospects et Clients. Dans la table Prospects il y aura PID qui sera le clé auto incrementé et le CodeProspect qui doit etre generé automatiquement sur cette format AAMMJJ+PID. Par example si la 1er ligne et PID=01 le CodeProspect doit etre generer automatiquement sur cette forme 08071501. J'ai aucune idée a generer ca sur SQL et j'ai trop chercher pour une solution. Svp aider moi.
 
Desoler pour mon niveau de francais et merci d'avance pour l aide.

Reply

Marsh Posté le 15-07-2008 à 10:39:27   

Reply

Marsh Posté le 15-07-2008 à 13:53:37    

trigger instead of insert sur la table.
 
tu passes le PID dans la colonne "id" à l'insertion, et tu le récupère dans le trigger le PID avec inserted.id
 
et tu n'as plus qu'à le modifier en rajoutant de jolies concaténation "datepart()" avant de le réinjecter dans inserted.id

Reply

Marsh Posté le 16-07-2008 à 10:31:08    

J'ai rien compris je suis qu'un novice on SQL normalement j'ai un stage d'ASP.NET et ils me demandent de faire ca et je suis coincé. Je travail sur visual studio qui me relie avec SQL Express 2005 :(

Reply

Marsh Posté le 16-07-2008 à 10:53:06    

ben demande une formation à SQL et T-SQL :spamafote:
 
ou au moins, demande un chèque en blanc de 30 € et achète un bouquin à la fnac

Reply

Marsh Posté le 16-07-2008 à 11:11:13    

Si la question est "Comment générer AAMMJJ+PID ?", essayer

select convert(varchar, getdate(), 112)+PID
from ...

La doc en ligne de SqlServer est à l'adresse http://msdn.microsoft.com/en-us/li [...] L.80).aspx

Reply

Marsh Posté le 16-07-2008 à 11:51:15    

J'ai fais se trigger  
 
 
ALTER TRIGGER Trigger_CodeProspect
ON Prospect
AFTER INSERT
 
As
 
SELECT REPLACE(SUBSTRING(CONVERT(CHAR(10), Getdate(), 121), 3, 10), '-', '') +
       REPLICATE('0', 8 - LEN(CAST(ID AS VARCHAR(16)))) + CAST(ID AS VARCHAR(16))
       AS CodeProspect
FROM   Prospect
 
 
Le truc cest quand j execute la query je vois le resultat mais dans la table rien ne change je ne comprend rien :(

Reply

Marsh Posté le 16-07-2008 à 11:58:04    

Petite remarque : C'est un peu plus compliqué avec 121 qu'avec 112.
 
Pour la réponse à la question, il faut savoir la différence entre select, update, et insert (sans oublier commit).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed