SQL Server: échec de la Conversion lors de la conversion d'une chaîne de caractères de type uniqueidentifier
J'ai été frapper ma tête contre un mur pour le passé des heures à essayer de comprendre cela, sql me donne l'erreur suivante
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
Je suis en utilisant la valeur par défaut asp.net l'adhésion des tables, 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 trop grande avec SQL encore. J'espère que quelqu'un ici va être en mesure de repérer mon problème.
Vous devez vous connecter pour publier un commentaire.
Votre procédure stockée accepte un
varchar(256)
, mais votreWHERE
déclaration est de rejoindre surForProfessionalID
, qui est un identifiant unique.le problème est:
Je pense que vous voulez