SSMS
 sql >> डेटाबेस >  >> Database Tools >> SSMS

अमान्य वस्तु का नाम - संग्रहित प्रक्रिया

मैं हमेशा अपने CREATE . को पहले से तैयार करने का प्रशंसक था अस्तित्व के लिए एक स्पष्ट जाँच के साथ बयान और अगर यह पाया गया तो छोड़ दिया गया।

IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME = 'NewQuestion' AND ROUTINE_SCHEMA = 'hgomez')
BEGIN
    DROP PROCEDURE hgomez.NewQuestion
END
GO

-- this is always a CREATE
CREATE PROCEDURE [hgomez].[NewQuestion]
    (
    @QUESTIONNAME nvarchar(50),
    @QUESTION_ID int OUTPUT
    )

AS
    /* SET NOCOUNT ON */
    INSERT INTO [Questions] (QuestionText) VALUES (@QUESTIONNAME)
    SET @QUESTION_ID = SCOPE_IDENTITY();
    RETURN

अनुमतियों के संबंध में यह थोड़ी परेशानी का कारण हो सकता है, इसलिए अन्य लोग एक दृष्टिकोण का उपयोग करते हैं जिसमें वे केवल तुरंत ALTER के लिए एक स्टब विधि बनाते हैं। यह।

IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME = 'NewQuestion' AND ROUTINE_SCHEMA = 'hgomez')
BEGIN
    EXEC ('CREATE PROCEDURE hgomez.NewQuestion AS SELECT ''stub version, to be replaced''')
END
GO

-- This is always ALTER
ALTER PROCEDURE [hgomez].[NewQuestion]
    (
    @QUESTIONNAME nvarchar(50),
    @QUESTION_ID int OUTPUT
    )

AS
    /* SET NOCOUNT ON */
    INSERT INTO [Questions] (QuestionText) VALUES (@QUESTIONNAME)
    SET @QUESTION_ID = SCOPE_IDENTITY();
    RETURN


  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. SSMS ऑब्जेक्ट एक्सप्लोरर - Azure DB से कनेक्ट होने पर अनुपलब्ध शीर्ष N पंक्तियों का चयन करें

  2. किसी तालिका में दो प्राथमिक कुंजियों को कैसे सेट (गठबंधन) करें?

  3. नीचे दिए गए उदाहरण के आधार पर SQL सर्वर से डेटा कैसे प्राप्त करें?

  4. मनी डेटा प्रकार प्रेसिजन - एसक्यूएल सर्वर (एसएसएमएस)

  5. SQL सर्वर प्रबंधन स्टूडियो और एक्सप्रेस संस्करण में क्या अंतर है?