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

SQL 2005 में संग्रहीत कार्यविधि में उपयोगकर्ता परिभाषित फ़ंक्शन बनाना

तकनीकी रूप से... हाँ आप कर सकते थे लेकिन इसका मतलब यह नहीं है कि आपको करना चाहिए। आपको GO स्टेटमेंट से बचने के बारे में सावधान रहना होगा (बस प्रत्येक बैच के लिए Exec का उपयोग करें) लेकिन आप कुछ ऐसा कर सकते हैं:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE dbo.Test
AS

Declare @Sql nvarchar(max)

Set @Sql = 'CREATE FUNCTION dbo.Foo
(   
)
RETURNS TABLE 
AS
RETURN 
(
    SELECT 0 As Bar
)'

Exec(@Sql)

Select * 
From dbo.Foo()


Set @Sql = 'Drop Function dbo.Foo'
Exec(@Sql)

Return
GO
Exec dbo.Test

उस ने कहा, मैं इस तरह के समाधान के खिलाफ दृढ़ता से अनुशंसा करता हूं, खासकर यदि आप जो फ़ंक्शन चाहते हैं वह कुछ ऐसा है जो स्प्लिट फ़ंक्शन की तरह उपयोगी होगा। मैं केवल यूडीएफ बनाने और इसका उपयोग करने और इसे तब तक छोड़ने की सलाह दूंगा जब तक आप इसे फिर से उपयोग नहीं कर सकते।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल प्रत्येक एक्स पंक्तियों में वृद्धिशील बैच संख्या का चयन करें

  2. विदेशी कुंजी बाधा

  3. रिकर्सिव सीटीई एसक्यूएल पदानुक्रम स्तर के लिए के साथ

  4. पाठ के साथ SQLServer पहचान कॉलम

  5. मैं एक बड़े बफर को बनाए बिना SQL सर्वर BLOB में .NET ऑब्जेक्ट का एक बड़ा ग्राफ कैसे क्रमबद्ध करूं?