sql - 声明问题

sql - problems with declare

我真的不知道这里出了什么问题..

USE [PRR_NEW]
DROP FUNCTION [dbo].[fA_20]
GO
CREATE FUNCTION [dbo].[fA_20]
(   
    @Id bigint = 10
)
RETURNS TABLE 
AS
RETURN 
(
declare @m table
(
    VatIdGA nvarchar(16),
    VatIdCAT nvarchar(16)
);
insert into @m (VatIdGA, VatIdCAT) values( 9,   8)
insert into @m (VatIdGA, VatIdCAT) values(11,   3)
insert into @m (VatIdGA, VatIdCAT) values(10,   5)
insert into @m (VatIdGA, VatIdCAT) values( 5,   9)

select vr.*, m.VatIdGA
    from VatRate as vr
    left outer join @m as m on m.VatIdCAT = vr.Id

问题是声明...有什么想法或解决方案吗?谢谢!

从语法来看,这对我来说像是 SQL 服务器。
如果是这样,这应该有效:

CREATE FUNCTION [dbo].[fA_20]
(   
    @Id bigint = 10
)
RETURNS TABLE 
AS

RETURN 
(
    with m  as
    (
        select VatIdGA, VatIdCAT
        FROM (values(9,   8), (11,   3), (10,   5), ( 5,   9)) v(VatIdGA, VatIdCAT)
    )
    select vr.*, m.VatIdGA
    from VatRate as vr
    left outer join m on m.VatIdCAT = vr.Id
)