14. maj 2007 - 11:21Der er
3 kommentarer og 1 løsning
Stored procedure - Datatype
Vi sidder lige og bøvler lidt med en stored Procedure, hvor vi har flg. "kode":
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go
ALTER PROCEDURE [dbo].[GetEmployeeType] @username [varchar], @password [varchar]
AS
SELECT Description, EmployeeTypeID FROM EmployeeType WHERE EmployeeTypeID IN (SELECT EmployeeTypeID FROM Employee WHERE Initials=@username AND Password=@password)
Som i og for sig virker godt nok, sådan delvist... Problemet er, at når vi prøver at execute den fra Ms Sql, vil den kun godtage varchar(1), hvilket resulterer i at vi kun kan søge på første karakter, selv om datatypen databasen er sat til varchar(MAX).
Er der nogen af jer kloge hoveder der kan forklare hvad man skal gøre (om muligt) for at kunne søge på hele strengen?
ALTER PROCEDURE [dbo].[GetEmployeeType] @username varchar(50), @password varchar(50)
AS
SELECT Description, EmployeeTypeID FROM EmployeeType WHERE EmployeeTypeID IN (SELECT EmployeeTypeID FROM Employee WHERE Initials=@username AND Password=@password)
Et lille råd. Lad være med at bruge subselects: For at få den mest optimale query skal du bruge noget i denne stil: SELECT et.Description, et.EmployeeTypeID FROM EmployeeType et INNER JOIN Employee e ON e.EmployeeTypeID= et.EmployeeTypeID AND e.Initials=@username AND e.Password=@password
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.