Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Chức năng xác định của Máy chủ Sql do người dùng xác định

Bạn chỉ cần tạo nó with schemabinding .

Sau đó, SQL Server sẽ xác minh xem nó có đáp ứng các tiêu chí được coi là xác định hay không (điều này thực hiện vì nó không truy cập vào bất kỳ bảng bên ngoài nào hoặc sử dụng các hàm không xác định như getdate() ).

Bạn có thể xác minh rằng nó hoạt động với

SELECT OBJECTPROPERTY(OBJECT_ID('[dbo].[FullNameLastFirst]'), 'IsDeterministic')

Thêm tùy chọn schemabinding vào mã gốc của bạn hoạt động tốt nhưng một phiên bản đơn giản hơn một chút sẽ là.

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Câu lệnh cập nhật động với tên cột biến

  2. Lấy ngày hiện tại trong SQL Server?

  3. Làm cách nào tôi có thể xóa dấu cách ở cuối khỏi truy vấn SQL Server 2008 khi xuất sang csv?

  4. Thay đổi một cột hiện có thành một cột được tính toán trong SQL Server (Ví dụ T-SQL)

  5. Cách lấy Giá trị trước cho Giá trị Null