Pytanie : Dlaczego stołowy zmienna dla wkład parametr

Cześć,

I am che lubić the następujący che pracować:

select *
from table1
where Col1 w (@list)

I podstawowy mieć zaopatrzony procedura che akceptować parametr który móc przecinek rozgraniczać lista IDs, eg.:
'1,2,3,4'< br/>
I chcieć dynamiczny sql ale raczej stołowy zmienna i wtedy łączyć na the stołowy zmienna. Ale I być pewny dlaczego parse the lista wartość w the stołowy zmienna. Dlaczego móc to robić?

Thanks

Odpowiedź : Dlaczego stołowy zmienna dla wkład parametr

Ty móc the funkcja potrzebować the stół ty potrzebować
na the przecinek-oddzielać wartość ty mieć.
(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
tworzyć funkcja fn_MySplit (
 @String nvarchar (4000)
 )
powrót @ValueTable stołowy ([Wartość] nvarchar (4000))
zaczynać
 oznajmiać @NextString nvarchar (4000)
 oznajmiać @Pos int
 oznajmiać @NextPos int
 oznajmiać @Delimeterer nvarchar (1)
 oznajmiać @CommaCheck nvarchar (1)
 
 --Initialize
 ustawiać @NextString = ''
 ustawiać @Delimeter = ","
 ustawiać @CommaCheck = prawy (@String, 1) 
 
 --Sprawdzać dla powłóczysty Przecinek, jeśli nie istnieć, WSZYWKA
 jeżeli (@CommaCheck <> @Delimiter)
  ustalony @String = @String + @Delimiter
 
 --Dostawać pozycja pierwszy Przecinek
 ustawiać @Pos = charindex (@Delimiter, @String)
 ustawiać @NextPos = (1)
 
 --Zapętlać podczas gdy tam  być wciąż przecinek w the Sznurek poziom
 podczas gdy (@pos <>  (0))  
 zaczynać
  ustawiać @NextString = substring (@String, (1), @Pos - 1)
 
  wszywka w @ValueTable ([Wartość]) Wartość (@NextString)
 
  ustalony @String = substring (@String, @pos +1, len (@String))
  
  ustawiać @NextPos = @Pos
  ustawiać @pos  = charindex (@Delimiter, @String)
 końcówka
 
 powrót
końcówka
Inne rozwiązania  
 
programming4us programming4us