我相對新手使用SQL Server,並且我有一些來自Oracle的經驗和實踐&我想在SQL Server中使用PostgreSQL。用於行插入的函數
我需要創建函數,該函數接受表中新行的字段值,並返回新記錄的自動生成的ID值。
首先,我面臨的事實是,SQL Server中的函數不能更改表中的數據。第二個我發現的是,SQL Server中的程序可以通過return @result
構造返回值。
我調查了output
機制的DML查詢,但它們不返回標量,而是返回表結果。
請耐心等待,讓我更清楚。這裏是做什麼,我想PostgreSQL的功能:
表創建腳本:
create table foobar
(
foo bigint not null default nextval('s_foobar'::regclass),
bar character varying(16),
constraint pk_foobar primary key (foo)
);
和功能的腳本:
create or replace function f_foobar_insert(p_bar character varying)
returns integer as
$body$declare
result integer;
begin
insert into foobar(bar) values (p_bar) returning foo into result;
return result;
end;$body$ language plpgsql;
是否有可能使在像這樣在SQL Server同樣的方式?
@ marc-s感謝您的關注。我不確定將「MS SQL」替換爲「SQL服務器」在我看來,「SQL服務器」是一個爲某些數據提供SQL查詢的程序。所以「SQL服務器」可以是任何東西,如Firebird,Postgres,SQLite,Oracle等。不要將「SQL服務器」只稱爲一個,而不是由M $創建的完美產品。謝謝。 – Abelisto 2014-09-21 16:30:04