07. juli 2006 - 16:16Der er
3 kommentarer og 1 løsning
Vælg tabel i stored procedure via CASE
Hej
Hvad er der galt her: Jeg får en "Error 156: Incorrect syntax near keyword CASE" (Choices_EN og DK er tabeller)
CREATE PROCEDURE [GetChoices] ( @intQuestionId int, @strLanguage nvarchar (200) ) AS SELECT strChoice FROM CASE WHEN @strLanguage = 'EN' THEN Choices_EN WHEN @strLanguage = 'DK' THEN Choices_DK END WHERE intQuestionId = @intQuestionId
Det kan man ikke. Det tætteste du kommer på er at bygge en SQL string og så eksekverer den.
Det er bare ikke særlig hensigstmæssigt da den SQL så ikke kan pre-compileres, hvilket jo er en af de primære fordele ved stored-procedures (performance om ikke andet). Der er ligesom to modeller enten styre du den slags i applikationslaget eller også laver du en IF konstruktion i din stored-procedure såldes at SQL'en kan pre-kompileres.
Du kunne også prøve at arbejde med en konstruktion hvor du ikke havde sprog i flere tabeller men istedet organiserede det såldes at en parameter på SELECT'en styrede hvilket sprog der var tale om.
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.