【发布时间】:2022-11-25 10:57:29
【问题描述】:
我必须将 postgresql 函数转换为 sql server
Postgresql 函数,我必须将其转换为 sql server
CREATE FUNCTION mismatch
(
column1 text,
column2 integer,
column3 integer
)
RETURNS bigint
AS
$$
BEGIN
RAISE EXCEPTION 'column1[%]column2[%]column3[%]', column1, column2, column3
USING ERRCODE = '50002';
END;
$$
LANGUAGE plpgsql;
这个 postgresql 函数在下面的查询中调用,在 CTE 中使用,然后更新表
SELECT mismatch('text', @column1, columnname)
FROM foo
WHERE (@id <= 1 OR id = @id)
AND idKey = @idKey
AND Index1 = 0
我已经尝试在 sql server 中使用标量用户定义函数但没有工作
CREATE FUNCTION mismatch
(
@column1 varchar(max),
@coulmn2 integer,
@coulmn3 integer
)
RETURNS bigint
AS
BEGIN
RAISERROR(N'column1%scolumn2%scolumn3%s'
,50002
,1
,@column1
,@coulmn2
,@column3);
END;
我曾考虑在 SQL Server 中使用 try-catch 事务,但是 postgresql 将它与选择查询结合使用。还有其他方法吗,thnksss
【问题讨论】:
-
“但不工作” - 这是什么意思?...到底是什么不起作用?...您是否收到错误,错误是什么?
标签: sql-server tsql sql-server-2017 stored-functions