J'utilise un système de calendrier avec SQL Server 2000 backend J'ai besoin de lister les événements avec des tuteurs et des salles à côté d'eux cela peut être plus de 1, donc faire tourner les multiples rangées de chambres et tuteurs dans + listes séparées. Je l'ai utilisé le code ci-dessous dans le passé:Concaténer les valeurs de colonne à partir des lignes
DECLARE @Tutors as varchar(8000)
SELECT @Tutors = isnull(@Tutors + ' + ', '') + name
FROM (
SELECT CT_EVENT_STAFF.event_id, CT_EVENT_STAFF.weeks,
CT_STAFF.unique_name, CT_STAFF.name
FROM celcat200809.dbo.CT_EVENT_STAFF AS CT_EVENT_STAFF
LEFT OUTER JOIN celcat200809.dbo.CT_STAFF AS CT_STAFF
ON CT_EVENT_STAFF.staff_id = CT_STAFF.staff_id
WHERE event_id = @eventID
) As data_set
print @Tutors
Le event_id étant l'événement unique, cela ne fonctionnera que quand je sais que l'ID exacte, je ne peux pas l'exécuter pour chaque ID.
Existe-t-il un moyen de le faire pour chaque event_id individuel sans curseurs. J'ai vu une solution possible à l'utilisation d'un UDF malheureusement mon deuxième problème est le système d'horaires (CELCAT) crée une nouvelle base de données pour chaque année (je sais ne demande pas) alors je vais devoir faire le SQL dynamique à savoir la base de données des années à venir serait celcat200910, je crois que le SQL dynamique ne peut pas être exécuté dans les UDF.
S'il vous plaît rappelez-vous ceci est SQL Server 2000
Sur les dispositions de DB: bruits rugueux. Oui, aucun SQL dynamique dans les fonctions définies par l'utilisateur n'est autorisé. Vous pourriez trouver de l'aide utile dans ce fil de discussion pour plusieurs travaux de DB: http://stackoverflow.com/questions/1037174/sql-use-statement-with-variable/1037961#1037961 ... Cependant, je pense que la meilleure solution serait Essayez de trouver un moyen de mettre les données dans une seule DB quelque part - mais cela peut être au-delà de votre compétence/appel du devoir. –
Je mets la plupart des données dans une base de données séparée pour les données de présence et similaires. J'utilise une procédure de nuit pour peupler ce genre de choses, cependant cette requête particulière doit être en direct – PeteT