Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

एसक्यूएल सर्वर यूडीएफ में पैरामीटर के रूप में टेबल पास करें

आप कर सकते हैं, हालांकि कोई तालिका नहीं। दस्तावेज़ीकरण से:

<ब्लॉकक्वॉट>

ट्रांजैक्ट-एसक्यूएल फ़ंक्शन के लिए, टाइमस्टैम्प डेटाटाइप को छोड़कर, सीएलआर उपयोगकर्ता-परिभाषित प्रकार और उपयोगकर्ता-परिभाषित तालिका प्रकारों सहित सभी डेटाटाइप की अनुमति है।

आप उपयोगकर्ता-परिभाषित तालिका प्रकारों का उपयोग कर सकते हैं ।

उपयोगकर्ता-परिभाषित तालिका प्रकार का उदाहरण:

CREATE TYPE TableType 
AS TABLE (LocationName VARCHAR(50))
GO 

DECLARE @myTable TableType
INSERT INTO @myTable(LocationName) VALUES('aaa')
SELECT * FROM @myTable

तो आप अपने टेबल प्रकार को परिभाषित करने के लिए क्या कर सकते हैं, उदाहरण के लिए TableType और उस फ़ंक्शन को परिभाषित करें जो इस प्रकार के पैरामीटर को लेता है। एक उदाहरण समारोह:

CREATE FUNCTION Example( @TableName TableType READONLY)
RETURNS VARCHAR(50)
AS
BEGIN
    DECLARE @name VARCHAR(50)

    SELECT TOP 1 @name = LocationName FROM @TableName
    RETURN @name
END

पैरामीटर को केवल पढ़ने के लिए होना चाहिए। और उदाहरण उपयोग:

DECLARE @myTable TableType
INSERT INTO @myTable(LocationName) VALUES('aaa')
SELECT * FROM @myTable

SELECT dbo.Example(@myTable)

आप जो हासिल करना चाहते हैं उसके आधार पर आप इस कोड को संशोधित कर सकते हैं।

संपादित करें: यदि आपके पास तालिका में डेटा है तो आप एक चर बना सकते हैं:

DECLARE @myTable TableType

और डेटा को अपनी टेबल से वेरिएबल में ले जाएं

INSERT INTO @myTable(field_name)
SELECT field_name_2 FROM my_other_table


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DevOps:DBA या डेवलपर - सही संतुलन प्राप्त करना

  2. SQL सर्वर में भाषा सेटिंग्स आपके FORMAT () परिणामों को कैसे प्रभावित कर सकती हैं (T-SQL उदाहरण)

  3. Microsoft SQL Server 2012 एंटरप्राइज़ संस्करण w/सर्विस पैक 1 स्थापित करना

  4. SQL सर्वर संग्रहीत कार्यविधि से API को कॉल करना

  5. SQL सर्वर में VALUES क्लॉज