Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL:имена на динамични променливи

Е, не е красиво, но можете да направите:

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

Това трябва да е достатъчно неприятно, за да помислите за алтернативи. О, ето един добър. Дефинирайте таблична променлива и просто добавете редове за всяка стойност:

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

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

Когато искате да получите променлива, можете да направите:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разлика между sp_spaceused и DataLength SQL Server

  2. Доктрина 2:Не може да се актуализира колоната DateTime на SQL Server 2008apm

  3. Връзка между първичен ключ и клъстерен индекс

  4. Добавяне на множество параметризирани променливи към база данни в C#

  5. Кръстосано прилагане в Linq