DB2 - Exemplos simples - SET



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

DB2 - Exemplos simples - SET

Specifies which columns and values that should be updated in a table
Especifica quais colunas e valores devem ser atualizados em uma tabela

The following SQL updates the first customer (CustomerID = 1) with a new ContactName and a new City:
O seguinte SQL atualiza o primeiro cliente (CustomerID = 1) com um novo ContactName e uma nova cidade:

    UPDATE Customers
       SET ContactName = 'Alfred Schmidt', City= 'Frankfurt'
     WHERE CustomerID = 1;

The following SQL will update the "ContactName" field to "Juan" for all records where Country is "Mexico":
O seguinte SQL atualizará o campo "ContactName" para "Juan" para todos os registros em que Country seja "Mexico":

    UPDATE Customers
       SET ContactName='Juan'
     WHERE Country='Mexico';

Another examples - Outros exemplos:

Example 1 - Exemplo 1:

Set the salary column of the row for which the trigger action is currently executing to 50000.
Defina a coluna de salário da linha para a qual a ação do gatilho está sendo executada atualmente como 50000.

    SET NEW_VAR.SALARY = 50000;
  Or:
    SET (NEW_VAR.SALARY) = (50000);

Example 2 - Exemplo 2:

Set the salary and the commission column of the row for which the trigger action is currently executing to 50000 and 8000, respectively.
Defina a coluna de salário e comissão da linha para a qual a ação do gatilho está sendo executada atualmente para 50000 e 8000, respectivamente.

    SET NEW_VAR.SALARY = 50000, NEW_VAR.COMM = 8000;
  Or:
    SET (NEW_VAR.SALARY, NEW_VAR.COMM) = (50000, 8000);

Example 3 - Exemplo 3:

Set the salary and the commission column of the row for which the trigger action is currently executing to the average salary and commission of employees in the department that is associated with the updated row.
Defina o salário e a coluna de comissão da linha para a qual a ação do gatilho está sendo executada atualmente para o salário médio e a comissão de funcionários no departamento que está associado à linha atualizada.

    SET (NEW_VAR.SALARY, NEW_VAR.COMM)
      = (SELECT AVG(SALARY), AVG(COMM)
           FROM EMPLOYEE E
          WHERE E.WORKDEPT = NEW_VAR.WORKDEPT);

Example 4 - Exemplo 4:

Set the salary and the commission column of the row for which the trigger action is currently executing to 10000 and the original value of salary (that is, before the SET statement was executed), respectively.
Defina o salário e a coluna de comissão da linha para a qual a ação do gatilho está sendo executada atualmente para o salário médio e a comissão de funcionários no departamento que está associado à linha atualizada.

    SET NEW_VAR.SALARY = 10000, NEW_VAR.COMM = NEW_VAR.SALARY;
  Or:
    SET (NEW_VAR.SALARY, NEW_VAR.COMM) = (10000, NEW_VAR.SALARY);

Example 5 - Exemplo 5:

Increase the SQL variable P_SALARY by 10 percent.
Aumente a variável SQL P_SALARY em 10 por cento.

    SET P_SALARY = P_SALARY + (P_SALARY * .10)

Example 6 - Exemplo 6:

Set the SQL variable P_SALARY to the null value.
Defina a variável SQL P_SALARY para o valor nulo.

    SET P_SALARY = NULL

Example 7 - Exemplo 7:

Assign numbers 2.71828183 and 3.1415926 to the first and tenth elements of the array variable SPECIALNUMBERS.
After the first assignment, the cardinality of P_PHONENUMBERS is 1.
After the second assignment, the cardinality is 10, and elements 2 to 9 have been implicitly assigned the null value.

Atribua os números 2.71828183 e 3.1415926 ao primeiro e ao décimo elementos da variável de matriz SPECIALNUMBERS.
Após a primeira atribuição, a cardinalidade de P_PHONENUMBERS é 1.
Após a segunda atribuição, a cardinalidade é 10 e os elementos 2 a 9 foram implicitamente atribuídos ao valor nulo.

    SET SPECIALNUMBERS[1] = 2.71828183;

    SET SPECIALNUMBERS[10] = 3.14159265;	

Example 8 - Exemplo 8:

Given a table named SECURITY.USERS, which has a row for every user that could connect to the database, assign the current time and the authorization level to the global variables USERINFO.GV_CONNECT_TIME and USERINFO.GV_AUTH_LEVEL, respectively.
Dada uma tabela chamada SECURITY.USERS, que possui uma linha para cada usuário que pode se conectar ao banco de dados, atribua a hora atual e o nível de autorização às variáveis ??globais USERINFO.GV_CONNECT_TIME e USERINFO.GV_AUTH_LEVEL, respectivamente.

    SET USERINFO.GV_CONNECT_TIME = CURRENT TIMESTAMP,
        USERINFO.GV_AUTH_LEVEL   = (
          SELECT AUTHLEVEL 
            FROM SECURITY.USERS
           WHERE USERID = CURRENT USER)

Example 9 - Exemplo 9:

Assign values to associative array variable, CAPITALS, which has been declared as the array type CAPITALSARRAY.
Atribua valores à variável de matriz associativa, CAPITALS, que foi declarada como o tipo de matriz CAPITALSARRAY.

    SET CAPITALS['British Columbia'] = 'Victoria';
    SET CAPITALS['Alberta'] = 'Edmonton';
    SET CAPITALS['Manitoba'] = 'Winnipeg';
    SET CAPITALS['Canada'] = 'Ottawa';

When populating the CAPITALS array, the array indexes are province, territory, and country names specified by strings and the associated array elements are capital cities, also specified by strings.
Ao preencher a matriz CAPITALS, os índices da matriz são os nomes das províncias, territórios e países especificados por strings e os elementos da matriz associados são capitais, também especificados por strings.

Example 10 - Exemplo 10:

Assign easy to remember names as indexes for personal phone numbers stored in the array variable PHONELIST of array type PERSONAL_PHONENUMBERS.
Atribua nomes fáceis de lembrar como índices para números de telefone pessoais armazenados na variável de array PHONELIST do tipo de array PERSONAL_PHONENUMBERS.

    SET PHONELIST['Home'] = '4163053745';
    SET PHONELIST['Work'] = '4163053746';
    SET PHONELIST['Mom']  = '4164789683';

Note:
Be careful when updating records in a table!
Notice the WHERE clause in the UPDATE statement.
The WHERE clause specifies which record(s) that should be updated.
If you omit the WHERE clause, all records in the table will be updated!

Nota:
Tenha cuidado ao atualizar os registros em uma tabela!
Observe a cláusula WHERE na instrução UPDATE.
A cláusula WHERE especifica quais registros devem ser atualizados.
Se você omitir a cláusula WHERE, todos os registros na tabela serão atualizados!