Kasowanie z użyciem where na tablicy

0

Mam tablicę typu int, która zawiera ID moich pakietów. Potrzebuję ją wypełnić i następnie na podstawie tych id skasować wszystkie odpowiadające rekordy w tabeli. Pytanie, jak zrobić warunek złączony, skoro mamy dostęp tylko do dynamicznie wypełnionej tablicy. Prosiłbym o pomoc.

		DECLARE @PackagesIds Dictionaries.Id
		INSERT INTO @PackagesIds(Id)
			SELECT ID FROM dbo.PackagesDefinitions PD Where PD.ArticleID = @ArticleId -- @ArticleId podajemy jako argument procedury
		DELETE FROM dbo.PackagesFields WHERE PackageDefinitionID = @PackagesIds -- jak podać to jako warunek?
0

IN (i1, i2, i3,...)

0

tak:

DECLARE @PackagesIds Dictionaries.Id
        INSERT INTO @PackagesIds(Id)
            SELECT ID FROM dbo.PackagesDefinitions PD WHERE PD.ArticleID = @ArticleId -- @ArticleId podajemy jako argument procedury
        DELETE FROM dbo.PackagesFields WHERE PackageDefinitionID in (select id from @PackagesIds) -- jak podać to jako warunek?

Pytanie w jakim celu deklaracja @PackagesIds, skoro mozna od razu:

        DELETE FROM dbo.PackagesFields 
        WHERE PackageDefinitionID in (SELECT ID FROM dbo.PackagesDefinitions PD WHERE PD.ArticleID = @ArticleId) 

0

Super, dzięki wielkie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1