webForumDet fria alternativet

sp kolumnsträng

2 svar · 162 visningar · startad av erka

erkaMedlem sedan dec. 19996 522 inlägg
#1

Hej

Hur hanterar en sp strängar ?

om jag skriver

CREATE PROCEDURE [spList] 

AS
SELECT     Brand_ID, BrandName_To
FROM         dbo.Brand
GO

Istället skickar jag med en parameter som talar om vad det efter BrandName_ ska vara

CREATE PROCEDURE [spList] 
@strBrand Char(2)

AS
SELECT     Brand_ID, 'BrandName_'+@strBrand
FROM         dbo.Brand
GO

så fungerar det ju inte, hur skriver jag för att få strängen rätt så att den plockar ut BrandName_VADJAGSKICKARMED ifrån tabellen

tack

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Det finns två alternativ.

Det ena är att du skriver

select case @strBrand
   when 'To' then strBrandTo
   when 'Tu' then strBrandTu end 
   from dbo.Brand

eller så

declare @query varchar(800)
set @query = 'select      Brand_ID, BrandName_' + @strBrand + 'FROM         dbo.Brand'
exec (@query)

Alternativ 1 är inte så flexibelt och alternativ 2 är sämre ur prestandasynpunkt

Moralpredikan:

Om du har behov av den här typen av lösningar så känns det som om du har en felaktig datamodell.

erkaMedlem sedan dec. 19996 522 inlägg
#3

Tack LarsG, ska pilla lite mer

126 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)