sql >> Database teknologi >  >> RDS >> Sqlserver

Kan ikke få adgang til midlertidige tabeller fra en funktion

Du kan bruge brugerdefineret tabeltype til at løse dit problem.

Du opretter bare en tabelvariabel som

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

og du kan erklære denne tabelvariabel i din funktion som

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

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

På din procedure kan du erklære din tabeltype som

DECLARE @yourTypeNamevaribale AS yourTypeName 

Og du kan indsætte værdier i denne tabel som

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

videregive dette til din funktion som

dbo.yourFunctionName(fnVariable1 ,@yourTypeNamevaribale )

gå venligst efter denne metode, tak



  1. Har brug for en mysql-forespørgsel

  2. Vælg antal(*) fra flere tabeller

  3. Hvordan får jeg deltaet for user_id siden de foregående måneder ved hjælp af oracle sql

  4. Hvordan opretter man dummy-variable kolonner for tusindvis af kategorier i Google BigQuery?