এসকিউএল সার্ভার ': সেটভার' ত্রুটি


123

আমি টি-এসকিউএল-তে কিছু স্ক্রিপ্ট ভেরিয়েবলগুলি তৈরি করার চেষ্টা করছি:

    /*
    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"

যাইহোক, আমি যখন এটি চালনা করি তখন আমি 'ভুল সংশ্লেষের নিকটবর্তী': 'উল্লেখ করে একটি ত্রুটি পাই। আমি কি ভুল করছি?

উত্তর:


237

সেটওয়ারটি কেবল এসকিউএল কমান্ড মোডে কাজ করে, সুতরাং আপনি সম্ভবত পরিচালনা স্টুডিওতে সাধারণ এসকিউএল এক্সিকিউশনের মধ্যে থাকেন এবং কমান্ড মোডে অদলবদল করেন নি।

এটি "ক্যোয়ারী" মেনুতে গিয়ে এবং "এসকিউএলসিএমডি মোড" নির্বাচন করে এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিওর ইউজার ইন্টারফেসের মাধ্যমে করা যেতে পারে।


19
ভিজ্যুয়াল স্টুডিওর: ডেটা> স্কিমা তুলনা ইউটিলিটি ব্যবহার করার সময় এটিও একটি সমস্যা। আপনি যদি ইউটিলিটির মধ্যে থেকে ফলাফল পরিবর্তন স্ক্রিপ্টটি চালান তবে আপনি ভাল, তবে আপনি যদি তুলনা করার পরে পরিবর্তন স্ক্রিপ্টটি রপ্তানি / এক্সকপি করার সিদ্ধান্ত নেন এবং তারপরে ফলাফল পরিবর্তন স্ক্রিপ্টটি এসএসএমএসে আমদানি / পেস্ট করার চেষ্টা করেন তবে উপরের হিসাবে এটি ব্যর্থ হবে। স্পষ্টতই এটি কোনও সমস্যা হতে পারে যদি আপনি একটি বান্ডিল স্থাপনার ডিবি পরিবর্তন স্ক্রিপ্টটি অন্তর্ভুক্ত করেন। সুতরাং উপরের মতো মেনু দিয়ে স্ক্রিপ্টটি চালনার আগে আপনাকে এসকিউএল কমান্ড মোডটি চালু করতে হবে বা আপনার কাস্টম ইনস্টল স্ক্রিপ্টটি চালানোর আগে তা নিশ্চিত করে নিন।
রিজম 20'12

6
ভিজ্যুয়াল স্টুডিওতে (২০১৩): এসকিউএল মেনু-> এক্সিকিউশন সেটিংস-> এসকিউএলসিএমডি মোড
২১

আমি ইনস্টলারের পরে প্রথম প্রারম্ভের সময় আমার অ্যাপ্লিকেশন থেকে আমার ডাটাবেস তৈরি করতে একটি সিনমা তুলনা উত্পন্ন স্ক্রিপ্টটি ব্যবহার করার চেষ্টা করছি, স্ক্রিপ্টটিকে একটি এক্সিকিউটিউনকোওয়ারি () এ পাস করে যাচ্ছি। আমাকে হয় এসকিউএলএমএমডি মোডের মাধ্যমে এটি কার্যকর করার একটি উপায় খুঁজে বের করতে হবে বা স্ক্রিপ্টটি হ্যাক শুরু করার জন্য সমস্ত ভেরিয়েবল প্রতিস্থাপন করে।
স্কট

কেবলমাত্র একটি এফওয়াইআই - আমি আমার ডিবি প্রকল্প প্রকাশের ফলে তৈরি করা স্ক্রিপ্টটি ব্যবহার করেছি এবং তারপরে সেটওয়ার ব্যবহার করে ভেরিয়েবলগুলির সমস্ত উল্লেখ সরিয়ে ফেলেছি। আমি আমার ডাটাবেসটির নামটি হার্ডকোড করেছিলাম তাই তৈরি করুন ডেটাবেসের পরিবর্তে [$ ডাটাবেসনাম] এটি কেবল ডেটাবেস MYDBNAME তৈরি করুন। এই স্ক্রিপ্টটি ইনস্টলের পরে আমার প্রথম অ্যাপ্লিকেশন প্রারম্ভকালে এক্সিকিউটিওনকোয়েরি () এর মাধ্যমে আমার ডাটাবেস তৈরি করতে কাজ করে।
স্কট

10

নিম্নলিখিত চিত্রটিতে বর্ণিত হিসাবে কেবল এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিওতে sqlcmd মোড সক্ষম করুন।

এখানে চিত্র বর্ণনা লিখুন


2

এসকিউএল ২০১২ এর জন্য:

টুলস / অপশন / ক্যোয়ারি এক্সিকিউশননে যান এবং ডিফল্টরূপে পরীক্ষা করে দেখুন, এসকিউএলসিএমডি মোডে নতুন কোয়েরি খুলুন।

নতুন ক্যোয়ারী বোতামটি চাপুন এবং ভেরিয়েবল সংজ্ঞাটি হাইলাইট হয়েছে তা নিশ্চিত করুন, আপনার স্ক্রিপ্টটি এখনই সঠিকভাবে চালানো উচিত।

পূর্বের সংস্করণসমূহ:

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


যখন একটি .sql ফাইলটি ব্যবহার করে: সেটওয়ারটি আপনার প্রকল্পের বিরুদ্ধে সিন্ট্যাক্স ত্রুটিগুলিও জানাবে ভিজ্যুয়াল স্টুডিও। এখানে বর্ণিত বিকল্প পরিবর্তন ত্রুটিগুলি মুছে ফেলবে এবং বিবৃতি থেকে "রেড স্কুইগলি আন্ডারলাইন" এড়াবে (প্রভাবটি দেখতে আপনাকে কোনও খোলা। এসকিউএল ফাইলগুলি বন্ধ করে পুনরায় খুলতে হবে)।
ব্রাবি

0

প্রতিস্থাপন চেষ্টা করুন :setvar DatabaseName "MesProduction_Preloaded_KLM_MesSap"

সঙ্গে:

USE [MesProduction_Preloaded_KLM_MesSap]
GO

স্ক্রিপ্টের বাকী অংশে ভেরিয়েবলের মূল্যায়নে সহায়তা করে না? $ (ডাটাবেসনাম)। [ডিবিও]। [যাই হোক না কেন
ক্রিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.