Visa ett inlägg
Oläst 2011-01-08, 23:00 #8
robbanps avatar
robbanp robbanp är inte uppkopplad
Medlem
 
Reg.datum: Apr 2010
Inlägg: 76
robbanp robbanp är inte uppkopplad
Medlem
robbanps avatar
 
Reg.datum: Apr 2010
Inlägg: 76
Standard Behändig funktion för listor

Denna funktion använder jag mig av ofta för att konvertera en kommaseparerad sträng till en table för att göra en insert med.

Kod:
create FUNCTION [dbo].[StringList_To_Table] (@list nvarchar(MAX))
   RETURNS @tbl TABLE (String nvarchar(max) NOT NULL, [Id] [int] IDENTITY(1,1) NOT NULL) AS
BEGIN
   DECLARE @pos        int,
           @nextpos    int,
           @valuelen   int

   SELECT @pos = 0, @nextpos = 1

   WHILE @nextpos > 0
   BEGIN
      SELECT @nextpos = charindex(',', @list, @pos + 1)
      SELECT @valuelen = CASE WHEN @nextpos > 0
                              THEN @nextpos
                              ELSE len(@list) + 1
                         END - @pos - 1
      INSERT @tbl (String)
         VALUES (convert(nvarchar, substring(@list, @pos + 1, @valuelen)))
      SELECT @pos = @nextpos
   END
  RETURN
END
Sen kan du använda dig av den så här:

Kod:
insert into table MyTable select String,Id from  StringList_To_Table('hej,hopp,test')
robbanp är inte uppkopplad   Svara med citatSvara med citat