SQL стандарт в СУБД MS SQL SERVER, ORACLE, VFP И ACCESS: манипулирование данными. Семенова И.И. - 38 стр.

UptoLike

Составители: 

37
целостности таблицы (исключая появление в ключевом поле двух
одинаковых значений).
Оператор INSERT добавляет в таблицу новую строку. В
предложении INTO указывается таблица, в которую добавляется новая
строка (целевая таблица), а в предложении VALUES содержатся
значения данных для новой строки. Список столбцов определяет, какие
значения в какой столбец заносятся. В столбцы, не перечисленные в
первых
скобках, будут автоматически записаны значения типа NULL
(пустые или неопределенные).
Список столбцов в первых скобках должен строго соответствовать
списку записываемых значений во вторых скобках.
57. Добавить в таблицу Pay новую запись, причем так, чтобы код
зарплаты был автоматически увеличен на 1, табельный номер =23, дата
зарплаты = текущей дате, а размер зарплаты = 5000:
в VFP (если код зарплаты без автонаращивания):
SELECT MAX(Code_pay) AS Max_ FROM Pay INTO CURSOR Temp
INSERT INTO Pay(T_number, Code_pay, Pay_day, Sum_pay) VALUES(23,
Temp.Max_+1, Date(), 5000)
в MS SQL Server (если код зарплаты c автонаращиванием,
объявленным через IDENTITY(1,1) ):
INSERT INTO Pay(T_number, Pay_day, Sum_pay) VALUES(23,
GetDate(), 5000)
в MS SQL Server(если код зарплаты без автонаращивания):
Declare @max bigint
SET @max = (SELECT MAX(Code_pay) FROM Pay)
SET @max = ISNULL(@max, 0)
INSERT INTO Pay(T_number, Code_pay, Pay_day, Sum_pay)
VALUES(23, @max+1, GetDate(), 5000)
в Oracle (если для кода зарплаты объявлена последовательность
SEQUENCE для генерации уникальных ключей):
INSERT INTO ADMIN_PAY.Pay(T_number, Code_pay, Pay_day,
Sum_pay) VALUES(23, ADMIN_PAY.ID_PAY_SEQ.NextVal, SysDate,
5000);
в Oracle (если для кода зарплаты нет объявленной
последовательности):
DECLARE
Max_ int;
BEGIN
SELECT MAX(Code_pay) INTO Max_ FROM ADMIN_PAY.Pay;