U kunt een tabelvariabele declareren (of parameter als deze deel uitmaakt van een procedure of functie) en deze gebruiken voor de not in
deel:
DECLARE @NotIn table (
NotInValues int
)
INSERT INTO @NotIn Values
('00009000'),
('00009900'),
('00009906')
en gebruik het als volgt in je code:
where [Location Code] between '0000' and '0040'
and [Item No_] not IN (select NotInValues from @NotIn)
and Gutschrift = '1'
and [Document Date] between @Start and @Ende
Opmerking #1: voor een groot aantal waarden zal niet bestaan waarschijnlijk beter presteren dan niet in
Opmerking #2: Als het deel uitmaakt van een opgeslagen procedure, moet u een door de gebruiker gedefinieerd tabeltype maken en dit gebruiken om de tabelwaardeparameter te declareren. Parameters met tabelwaarde zijn ook alleen-lezen, dus het uitvoeren van DML-instructies (insert/update/delete) daarop zal een fout opleveren.
Om de udt te maken:
CREATE TYPE IntegerList As Table
(
IntValue int
)
Om het te declareren in de lijst met opgeslagen procedureparameters:
CREATE PROCEDURE procedureName
(
@IntList dbo.IntegerList READONLY
-- Note that the readonly must be a part of the parameter declaration.
)