Anda hanya perlu membuatnya with schemabinding
.
SQL Server kemudian akan memverifikasi apakah memenuhi kriteria untuk dianggap sebagai deterministik atau tidak (yang dilakukannya karena tidak mengakses tabel eksternal atau menggunakan fungsi non deterministik seperti getdate()
).
Anda dapat memverifikasi bahwa itu berfungsi dengan
SELECT OBJECTPROPERTY(OBJECT_ID('[dbo].[FullNameLastFirst]'), 'IsDeterministic')
Menambahkan opsi pengikatan skema ke kode asli Anda berfungsi dengan baik tetapi versi yang sedikit lebih sederhana.
CREATE FUNCTION [dbo].[FullNameLastFirst] (@IsPerson BIT,
@LastName NVARCHAR(100),
@FirstName NVARCHAR(100))
RETURNS NVARCHAR(201)
WITH SCHEMABINDING
AS
BEGIN
RETURN CASE
WHEN @IsPerson = 0
OR @FirstName = '' THEN @LastName
ELSE @LastName + ' ' + @FirstName
END
END