我使用Sql-server 2012
要使用標量函數或表值函數,在SQL Server確定最佳
我的表的定義是:
create table products1(pid int,pnm varchar(10),oid int foreign key references orders1(oid))
create table orders1(oid int primary key,onm varchar(10),odt date)
insert into products1 values(1,'ABC',1),(2,'DEF',2)
insert into orders1 values(1,'QTY','2013-04-27'),(2,'PROD','2015-04-29')
create function dbo.udf_getmaxdt(@a date)
returns date
as
begin
select @a=max(o.odt) from orders1 o inner join products1 p on o.oid=p.pid
return @a
end
create function dbo.udf_getmaxdt(@a date)
returns TABLE
as
RETURN
(
select @a=max(o.odt) from orders1 o inner join products1 p on o.oid=p.pid
)
end
的語法可能是錯誤的,但我對任務來確定兩種功能中最好的一種。
但不能告訴哪一個,你能幫我嗎?
問候, 基奧
只要記住UDF的往往是意想不到的性能殺手。如果您不必要地創建和使用UDF,您可能會發現它無法擴展,並且當您擁有100倍的記錄時,您會遇到難以解決的性能問題。 –