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

विचित्र प्रदर्शन समस्या:इनलाइन उपयोगकर्ता-परिभाषित फ़ंक्शन में सामान्य तालिका अभिव्यक्तियाँ

हाहा, इसे आजमाएं:

IF OBJECT_ID('_HappyFunction' ) IS NOT NULL DROP FUNCTION _HappyFunction
IF OBJECT_ID('_SadFunction'   ) IS NOT NULL DROP FUNCTION _SadFunction
IF TYPE_ID  ('_UniqueIntTable') IS NOT NULL DROP TYPE _UniqueIntTable
GO

CREATE TYPE _UniqueIntTable AS TABLE (Value int NOT NULL PRIMARY KEY)
GO

CREATE FUNCTION _HappyFunction (@IDs _UniqueIntTable READONLY)
RETURNS TABLE AS RETURN
  SELECT Value FROM @IDs
GO

CREATE FUNCTION _SadFunction (@IDs _UniqueIntTable READONLY)
RETURNS TABLE AS RETURN 
  WITH CTE AS (SELECT Value FROM @IDs)
  SELECT Value FROM CTE
GO

-- this will return an empty record set
DECLARE @IDs _UniqueIntTable 
SELECT * FROM _HappyFunction(@IDs)
GO

-- this will hang
DECLARE @IDs _UniqueIntTable 
SELECT * FROM _SadFunction(@IDs)
GO

किसने अनुमान लगाया होगा?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर उपयोग के लिए Azure वर्चुअल मशीनें

  2. ईएफ कोड पहले, अलग-अलग स्कीमा के साथ एक ही टेबल नाम कैसे पंजीकृत करें?

  3. SQL सर्वर CSV को कई पंक्तियों में विभाजित करता है

  4. SQL सर्वर में &ऑपरेटर का उपयोग क्या है?

  5. SQL सर्वर में किसी मौजूदा तालिका में डिफ़ॉल्ट मान वाला कॉलम जोड़ें