Wie dynamisch deklarieren PARTITION ANGEBOT IN der Partition-Funktion in sql server

Möchte ich dynamisch deklarieren Sie die Palette von meiner partition-Funktion.
Ich will nicht zu hart-code der range-Wert,wie folgt:

CREATE PARTITION FUNCTION PartFun(smallint)ALS RANGE-LINKS FÜR WERTE (1,2,3,4,5)

Das problem ist:Die Spalte(ID IDMASTER Tabelle) auf, das will ich "partition erstellen" ist der smallint-Datentyp.

Declare @IDS NVARCHAR(100)

SELECT @IDS = coalesce(@IDS + ', ', '') + CAST(a.ID AS VARCHAR) FROM 
             (SELECT DISTINCT TOP 100 ID from IDMASTER ORDER BY ID ) a
--PRINT @IDS --it prints 0,1,2,3,4 like that

CREATE PARTITION FUNCTION PartFun(smallint)
AS RANGE LEFT FOR VALUES (@IDS)

Immer diese Fehlermeldung:

"Konnte nicht implizit konvertiert Wertebereiche Typ angegeben Ordnungszahl 1 zu partition Funktion parameter-Typ".

Abhilfe-Idee?
Auch ist es, dass die Menschen meist hart codierten Werte für die partition reichen?

InformationsquelleAutor John Davis | 2013-09-17
Schreibe einen Kommentar