J'ai été cogner la tête contre un mur pour la dernière heure d'essayer de comprendre cela, sql me donne l'erreur suivanteSQL Server: Échec de la conversion d'une chaîne de caractères à uniqueIdentifier
Msg 8169, Level 16, State 2, Procedure GetAppointmentsByProfessionalName, Line 6
Conversion failed when converting from a character string to uniqueidentifier.
lorsque cette procédure stockée est exécutée
-- =============================================
-- Create date: <July 2010>
-- Description: <Gets a list of appointments for a professionals username>
-- =============================================
Drop procedure GetAppointmentsByProfessionalName
go
Create procedure GetAppointmentsByProfessionalName(@ProfessionalName varchar(256))
as
declare @ProfessionalID uniqueidentifier
set @ProfessionalID = (select UserId from aspnet_Users where UserName = @ProfessionalName)
select a.AppointmentID as 'Appointment ID',
c.Name as 'Client Name',
p.Name as 'Professional Name',
a.ProposedDate as 'Date',
CONVERT(CHAR(8), a.ProposedTime, 114)as 'Time',
a.ClientDescription as 'Client Notes',
a.Confirmed as 'Confirmed Appointment'
from Appointment a join Client c on a.ForClientID = c.ClientID
join dbo.Professional p on a.ForProfessionalID = p.ProfessionalID
where ForProfessionalID = @ProfessionalName
go
J'utilise les tables des membres de asp.net par défaut, ainsi que les définitions suivantes
create table Professional
(
ProfessionalID uniqueidentifier not null constraint pk_ProID Primary Key references aspnet_Users(UserId),
Name varchar(256),
Email varchar(256),
Phone varchar(256),
DisplayPictureUrl varchar(256),
ProfileSubHeader varchar(1000),
ProfileContent varchar(1000),
ServicesSubHeader varchar(1000),
ServicesContent varchar(1000)
)
go
create table Client
(
ClientID int identity not null constraint pk_ClientID Primary Key clustered,
Name varchar(256),
Email varchar(256),
Phone varchar(256)
)
go
create table AppointmentType
(
TypeID int identity not null constraint pk_AppointmentTypeID Primary Key clustered,
Name varchar(256),
Description varchar(256),
DisplayPictureUrl varchar(256)
)
go
create table Appointment
(
AppointmentID int identity not null constraint pk_AppointmentID Primary Key clustered,
ForClientID int null constraint fk_ForClientID references Client(ClientID),
ForProfessionalID uniqueidentifier not null constraint fk_ForProfessionalID references aspnet_users(UserID),
ProposedTime datetime not null,
ProposedDate datetime not null,
TypeID int not null constraint fk_TypeID references AppointmentType(TypeID),
ClientDescription varchar(256) null,
Confirmed bit
)
GO
C'est probablement un problème de syntaxe, je ne suis pas encore très bien avec SQL. J'espère que quelqu'un ici sera en mesure de repérer mon problème.
D'OH! Je voulais vraiment mettre @ForProfessionalID là, merci – Gallen
Je voudrais pouvoir upvote plus d'une fois. Rien de tel que d'avoir un moment de réflexion à Little Bobby Tables! – Moose
Hehe, merci à tous! – LittleBobbyTables