SQL Server T-SQL替代

时间:2016-09-12 15:02:35

标签: sql-server tsql stored-procedures

我在使用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功能,但限制太严重了

0 个答案:

没有答案