2010-04-21 11 views
96

मैं इस प्रकार T-SQL में कुछ स्क्रिप्ट चर बनाने का कोशिश कर रहा हूँ:एसक्यूएल सर्वर ': setVar' त्रुटि

/* 
    Deployment script for MesProduction_Preloaded_KLM_MesSap 
    */ 

    GO 
    SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON; 

    SET NUMERIC_ROUNDABORT OFF; 


    GO 
    :setvar DatabaseName "MesProduction_Preloaded_KLM_MesSap" 

हालांकि, जब मैं इस चलाने के लिए, मैं यह कहते हुए 'गलत वाक्य रचना के पास' कोई त्रुटि मिलती है: '। मैं क्या गलत कर रहा हूं?

उत्तर

175

: सेटवर केवल SQL कमांड मोड में काम करता है, इसलिए आप संभवतः प्रबंधन स्टूडियो में सामान्य SQL निष्पादन के भीतर हैं और कमांड मोड में नहीं बदला है।

यह "क्वेरी" मेनू पर जाकर और "SQLCMD मोड" चुनकर SQL सर्वर प्रबंधन स्टूडियो में उपयोगकर्ता इंटरफ़ेस के माध्यम से किया जा सकता है।

+16

यह भी एक मुद्दा जब दृश्य स्टूडियो के उपयोग कर रहा है: डेटा> स्कीमा उपयोगिता की तुलना करें। यदि आप परिणामी परिवर्तन स्क्रिप्ट को उपयोगिता के भीतर से चलाते हैं तो आप ठीक हैं, लेकिन यदि आप तुलना करने के बाद परिवर्तन स्क्रिप्ट को निर्यात/एक्सकॉपी करने का निर्णय लेते हैं और फिर परिणामी परिवर्तन स्क्रिप्ट को एसएसएमएस में आयात/पेस्ट करने का प्रयास करते हैं तो उपरोक्त के रूप में यह विफल हो जाएगा। स्पष्ट रूप से यह एक मुद्दा भी हो सकता है यदि आप एक बंडल तैनाती में डीबी परिवर्तन स्क्रिप्ट शामिल थे। तो स्क्रिप्ट को या तो मेनू के माध्यम से स्क्रिप्ट चलाने से पहले आपको SQL कमांड मोड चालू करने की आवश्यकता है या यह सुनिश्चित करने के लिए कि आपकी कस्टम इंस्टॉल स्क्रिप्ट चलने से पहले ऐसा करती है। – rism

+3

विजुअल स्टूडियो (2013) में: एसक्यूएल मेनू-> निष्पादन सेटिंग्स-> एसक्यूएलसीएमडी मोड – larsts

+0

मैं इस समस्या में चल रहा हूं, एक स्सेमा तुलना उत्पन्न स्क्रिप्ट का उपयोग करने की कोशिश कर रहा हूं ताकि इंस्टॉलेशन के बाद पहले स्टार्टअप पर मेरे एप्लिकेशन से मेरा डेटाबेस बनाया जा सके, स्क्रिप्ट पास कर सकें एक निष्पादन के लिए()। मुझे या तो SQLCMD मोड के माध्यम से इसे निष्पादित करने का तरीका ढूंढना होगा या शुरुआत के लिए सभी चरों को प्रतिस्थापित करने वाली स्क्रिप्ट को हैक करना होगा। – Scott

1

साथ :setvar DatabaseName "MesProduction_Preloaded_KLM_MesSap"

की जगह का प्रयास करें: SQL2012 लिए

USE [MesProduction_Preloaded_KLM_MesSap] 
GO 
+0

बाकी स्क्रिप्ट में चर के मूल्यांकन में मदद नहीं करता है? $ (DatabaseName)। [Dbo]। [जो भी] – CRice

1

:

पर जाएँ: उपकरण/विकल्प/क्वेरी निष्पादन और डिफ़ॉल्ट रूप से जाँच, SQLCMD मोड में खुला नया प्रश्नों।

नया क्वेरी बटन दबाएं और सुनिश्चित करें कि चर परिभाषाओं को हाइलाइट किया गया है, आपकी स्क्रिप्ट को अभी ठीक से चलाना चाहिए।

पिछले संस्करणों:

http://blog.sqlauthority.com/2013/06/28/sql-server-how-to-set-variable-and-use-variable-in-sqlcmd-mode/

1

बस छवि निम्नलिखित में वर्णित के रूप एसक्यूएल सर्वर प्रबंधन स्टूडियो में sqlcmd मोड सक्षम करें।

enter image description here

संबंधित मुद्दे