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

Không thể truy cập các bảng tạm thời từ bên trong một hàm

Bạn có thể sử dụng loại bảng do người dùng xác định để giải quyết vấn đề của mình.

Bạn chỉ cần tạo một biến bảng như

CREATE TYPE [dbo].[yourTypeName] AS TABLE(
    [columeName1] [int] NULL,
    [columeName2] [varchar](500) NULL,
    [columeName3] [varchar](1000) NULL
)
GO

và bạn có thể khai báo biến bảng này trong hàm của mình như

    CREATE FUNCTION [dbo].[yourFunctionName] 
( 
    @fnVariable1 INT ,
    @yourTypeNameVariable yourTypeName READONLY
) 
RETURNS VARCHAR(8000) 
AS 
BEGIN 

    SELECT .................
        FROM @yourTypeNameVariable 
        WHERE ........
    RETURN @r 
END 

Trong quy trình của mình, bạn có thể khai báo loại bảng của mình như

DECLARE @yourTypeNamevaribale AS yourTypeName 

Và bạn có thể chèn các giá trị vào bảng này như

insert into @yourTypeNamevaribale (col,col,..)values(val,val,..)

chuyển nó vào chức năng của bạn như

dbo.yourFunctionName(fnVariable1 ,@yourTypeNamevaribale )

vui lòng sử dụng phương pháp này, cảm ơn bạn



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao tôi không thể sử dụng bí danh trong cột đếm (*) và tham chiếu nó trong mệnh đề có?

  2. SQL - Thủ tục được lưu trữ với Câu lệnh Chọn sử dụng IN (@Variable_CommaDelimitedListOfIDS)

  3. Nhận giá trị tối đa từ các hàng và tham gia vào một bảng khác

  4. SQL Server Like Query không phân biệt chữ hoa chữ thường

  5. Nhập ngày chuỗi trong cột Có nguồn gốc