sql >> Database >  >> RDS >> Sqlserver

SQL:namen van dynamische variabelen

Nou, het is niet mooi, maar je kunt doen:

if @loopcntr = 1
    set var01 = 'somevalue'
else if @loopcntr = 2
    set var02 = 'whatever'
else if . . .

Dit moet zo onaangenaam zijn dat je aan alternatieven zou denken. Oh, hier is een goede. Definieer een tabelvariabele en voeg gewoon rijen toe voor elke waarde:

declare @vars table (
    id int identity(1, 1),
    loopcntr int,
    value varchar(255)
);

. . .
-- inside the loop
    insert into @vars(loopcntr, value)
        select @loopcntr, 'whatever';

Als u een variabele wilt krijgen, kunt u het volgende doen:

declare @var varchar(255);
select @var = value from @vars where loopcntr = <the one I want>;


  1. Verbeterd script dat alle eigenschappen van SERVERPROPERTY() in SQL Server retourneert

  2. Voorwaardelijke operator in SQL Where-clausule

  3. while-lus en join-uitvoer in mysql php

  4. Retourneer resultatenset van Oracle 11g opgeslagen procedure met behulp van klassieke asp