我在使用T-SQL for SQL Server 2014编写函数时遇到了一些麻烦。
据我所知,T-SQL函数不允许执行UPDATE / DELETE等操作,但这对我来说是一个问题,因为我有几个我用于PostgreSQL的SQL进程正是我想做的,但我可以&#39 ;由于这种限制,我们制作了SQL Server版本。
例如,我在PostgreSQL上使用的进程有以下(真正淡化的版本)。
drop type if exists localtype cascade;
create type localtype as (
id integer,
status text
);
drop function if exists rowmaintenance();
create function rowmaintenance(total integer, status text)
returns setof localtype as $$
declare
result localtype;
maincursor record;
begin
for maincursor in
select * from colours
where co_num <= total
loop
update colours
set co_status = status;
result.id := maincursor.co_num;
result.status = status;
return next result;
end loop;
end $$
language 'plpgsql';
select * from rowmaintenance(10, 'active');
我们的许多流程将运行记录并进行更新,然后返回已更新的结果(几行)。我无法在T-SQL中实现这一点。是否有替代语言或方法在T-SQL中实现类似的东西?
我尝试过T-SQL功能,但限制太严重了