Предложение OUTPUT должно работать для вас. Вот пример его использования.
DROP TABLE IF EXISTS #t;
CREATE TABLE #t
(
ID INT NOT NULL IDENTITY(1,1),
SomeText VARCHAR(100)
);
DROP TABLE IF EXISTS #IDTable;
CREATE TABLE #IDTable (ID INT);
INSERT INTO #t (SomeText)
VALUES ('Hello'),
('World');
UPDATE #t
SET SomeText = 'World!'
OUTPUT Inserted.ID
INTO #IDTable
WHERE ID = 2;
SELECT ID FROM #IDTable;
В вашем примере это может выглядеть примерно так:
UPDATE Table1
SET [HastaSN] = @HastaSN
OUTPUT 'Table1', Inserted.Id
INTO Changes
WHERE Id = @Id
PERL5LIB работает просто великолепно для сценариев CGI. Просто необходимо установить переменную в правильном месте, таком как конфигурация сервера. Какой веб-сервер Вы используете? Для Apache я использую директиву SetEnv от mod_env.
@INC является портативным. Пути, которые Вы помещаете там, не могут быть тем же на каждой машине, но у Вас не должно быть проблемы с самой переменной.
Сделайте, чтобы Вы считали записи FAQ в perlfaq8:
Более чистый способ сделать это imo:
use lib "/path/" ;
существуют другие интересные и хорошие способы сделать это, который может быть найден здесь:
http://www.slideshare.net/pfig/cpan-training-presentation/
Кроме того, ре: сценарии CGI, Вы, CAN определяет пути PERL5LIB для Вашего ENV CGI, это просто, зависите от своего webhost.
Некоторые Webhosts разрешают определенное управление огибающих переменных для Enviroment CGI, и необходимо просто установить их, у других может быть список "разрешения", который позволяет переменные, видимые во время начала, появляются в локальном объеме.
Может помочь читать о том, как сделать это на Вашем определенном сервере HTTP.
Существует еще одна опция, если установка ENV не к Вашему вкусу: local::lib
Который ищет некоторые предопределенные пути автоматически.