আমি এসকিউএল সার্ভার ২০০৮ ম্যানেজমেন্ট স্টুডিও ব্যবহার করছি এবং একটি টেবিল আছে যা আমি অন্য ডিবি সার্ভারে স্থানান্তর করতে চাই।
এসকিউএল স্ক্রিপ্টে সন্নিবেশ হিসাবে ডেটা রফতানি করার কোনও বিকল্প আছে কি ??
আমি এসকিউএল সার্ভার ২০০৮ ম্যানেজমেন্ট স্টুডিও ব্যবহার করছি এবং একটি টেবিল আছে যা আমি অন্য ডিবি সার্ভারে স্থানান্তর করতে চাই।
এসকিউএল স্ক্রিপ্টে সন্নিবেশ হিসাবে ডেটা রফতানি করার কোনও বিকল্প আছে কি ??
উত্তর:
অবজেক্ট এক্সপ্লোরারে এসএসএমএসে, ডাটাবেসে ডান ক্লিক করুন, ডান ক্লিক করুন এবং "টাস্কগুলি" এবং তারপরে "স্ক্রিপ্টগুলি উত্পন্ন করুন" বাছুন।
এটি আপনাকে একটি একক বা সমস্ত টেবিলের জন্য স্ক্রিপ্ট তৈরি করতে দেয় এবং বিকল্পগুলির মধ্যে একটি হ'ল "স্ক্রিপ্ট ডেটা"। আপনি যদি এটি সত্যে সেট করেন, উইজার্ডটি আপনার ডেটার জন্য INSERT INTO () বিবৃতি সহ একটি স্ক্রিপ্ট তৈরি করবে।
যদি 2008 আর 2 বা 2012 ব্যবহার করে তবে এটিকে অন্য কিছু বলা হয়, এটির নীচে স্ক্রিনশটটি দেখুন
"স্ক্রিপ্টে ডেটার প্রকারগুলি" নির্বাচন করুন যা "কেবলমাত্র ডেটা", "স্কিমা এবং ডেটা" বা "স্কিমা কেবল" - ডিফল্ট হতে পারে)।
এবং তারপরে কোডপ্লেক্সে একটি " এসএসএমএস অ্যাডিন " প্যাকেজ রয়েছে (উত্স সহ) যা একই কার্যকারিতা এবং আরও কয়েকটিকে প্রতিশ্রুতি দেয় (যেমন দ্রুত অনুসন্ধান ইত্যাদি)
অতিরিক্ত সুস্পষ্ট বুদ্ধিহীনতার জন্য, এখানে মার্ক-এর নির্দেশাবলী অনুসরণ করার পরে ...
অবজেক্ট এক্সপ্লোরারে এসএসএমএসে, ডাটাবেসে ডান ক্লিক করে ডান ক্লিক করুন এবং "টাস্কগুলি" এবং তারপরে "স্ক্রিপ্টগুলি উত্পন্ন করুন" বাছুন।
... তারপরে আমি " পরিচিতি, অবজেক্টস নির্বাচন করুন, স্ক্রিপ্টিং বিকল্পগুলি সেট করুন, সংক্ষিপ্তসারটি করুন, এবং স্ক্রিপ্টগুলি সংরক্ষণ করুন বা প্রকাশ করুন " সহ উইজার্ডের স্ক্রিনটি দেখতে পাবেন , নীচের দিকে, শেষ, বোতামগুলি বাতিল করুন।
উপর সেট স্ক্রিপ্টিং বিকল্প পদক্ষেপ , আছে তোমার কাছে ক্লিক করুন "উন্নত" বিকল্প সহ পৃষ্ঠা জন্য। তারপরে, ঘ্লুউ যেমন উল্লেখ করেছেন, আপনি এখন "স্ক্রিপ্টে ডেটার প্রকারগুলি" এবং লাভটি নির্বাচন করুন select
আপনি যদি এটি এসকিউএল সার্ভার 2008R2 ব্যবহার করেন তবে আপনাকে স্ক্রিপ্ট ক্ষেত্রে ডেটার প্রকারগুলি সেট করতে হবে।
আপনি যদি এসকিউএল সার্ভার 2008 আর 2 চালিয়ে যাচ্ছেন তবে এসএসএমএসে বিল্ট-ইন বিকল্পগুলি এটির জন্য বর্ণিত হিসাবে মার্ক বর্ণিত হয়েছে উপরে বর্ণিত কিছুটা পরিবর্তন হয়েছে। Script data = true
তার চিত্রটিতে প্রদর্শিত হিসাবে বাছাইয়ের পরিবর্তে এখন "Types of data to script"
"টেবিল / দেখুন বিকল্পগুলি" গোষ্ঠীকরণের ঠিক উপরে একটি নতুন বিকল্প রয়েছে । এখানে আপনি স্ক্রিপ্ট ডেটা, স্কিমা এবং ডেটা বা স্কিমা কেবল চয়ন করতে পারেন। একটি যাদুমন্ত্র মত কাজ করে.
কমান্ড-লাইন সংস্করণ সন্ধানকারীদের জন্য, মাইক্রোসফ্ট এটি করার জন্য প্রকাশmssql-scripter
করেছে:
$ pip install mssql-scripter
# Generate DDL scripts for all database objects and DML scripts (INSERT statements)
# for all tables in the Adventureworks database and save the script files in
# the current directory
$ mssql-scripter -S localhost -d AdventureWorks -U sa --schema-and-data \
-f './' --file-per-object
আমি অন্য একটি নতুন ভি 18, প্রায় 2019 ব্যবহার করছি বলে অন্যকে সহায়তা করার জন্য কেবল স্ক্রিনশট আপডেট করা।
এখানে আপনি নির্দিষ্ট সারণী নির্বাচন করতে পারেন বা সকলের ডিফল্ট সাথে যেতে পারেন। আমার নিজের প্রয়োজনের জন্য আমি কেবল একটি টেবিলটি নির্দেশ করছি।
এরপরে, "স্ক্রিপ্টিং বিকল্পগুলি" রয়েছে যেখানে আপনি আউটপুট ফাইল ইত্যাদি চয়ন করতে পারেন, যেমন উপরের একাধিক উত্তরে (আবার, আমি কেবল নতুন, v18.4 এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও) পুরানো উত্তরগুলি ধুয়ে ফেলছি যা আমরা সত্যই চাই "উন্নত" বোতামের অধীনে is আমার নিজের উদ্দেশ্যে, আমার কেবল তথ্য দরকার।
অবশেষে, মৃত্যুদন্ড কার্যকর করার আগে একটি পর্যালোচনা সারাংশ আছে। ক্রিয়াকলাপের পরে অপারেশনগুলির একটি প্রতিবেদন প্রকাশিত হয়।
আপনি এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও ২০০৮ এর জন্য "ডেটা স্ক্রিপ্টার অ্যাড-ইন" পরীক্ষা করে দেখতে পারেন:
http://www.mssql-vehicle-data.com/SSMS
তাদের বৈশিষ্ট্য তালিকা:
এটি এসএসএমএস ২০০৮ এ বিকাশিত হয়েছিল এবং এটি ২০০ 2005 সংস্করণে এই মুহুর্তে সমর্থিত নয় (শীঘ্রই!)
এমএসএসকিউএল এবং মাইএসকিউএল সিন্টেক্সের জন্য ডেটা টি-এসকিউএল থেকে দ্রুত রফতানি করুন
সিএসভি, টিএক্সটি, এক্সএমএল সমর্থিত! এসকিউএল প্রদত্ত সম্পূর্ণ সম্ভাবনা, শক্তি এবং গতি কাজে লাগান।
অ্যাক্সেস বা এক্সেল আপনার জন্য স্ক্রিপ্টিংয়ের কাজ করার জন্য অপেক্ষা করবেন না যা করতে কয়েক মিনিট সময় লাগতে পারে - এসকিউএল সার্ভারটি এটি আপনার জন্য করুন এবং আপনার ডেটা রফতানির বাইরে সমস্ত অনুমানের কাজটি গ্রহণ করুন!
দ্রুত ব্যাকআপ, ডিডিএল ম্যানিপুলেশন এবং আরও অনেক কিছুর জন্য আপনার ডেটা আউটপুট কাস্টমাইজ করুন ...
দ্রুত এবং দক্ষতার সাথে আপনার প্রয়োজনে টেবিলের নাম এবং ডাটাবেস স্কিমার পরিবর্তন করুন
কলামের নাম রফতানি করুন বা নাম বাদে ডেটা উত্পন্ন করুন।
আপনি স্ক্রিপ্টে পৃথক কলামগুলি চয়ন করতে পারেন।
আপনি উপ-সেট ডেটা (WHERE ধারা) চয়ন করতে পারেন।
আপনি ডেটা অর্ডার বাছাই করতে পারেন (ধারা দ্বারা অর্ডার)।
ডেটা ম্যানিপুলেশন প্রয়োজন যারা গ্র্যানি ডাটাবেস ডিবাগিং অপারেশনগুলির জন্য দুর্দান্ত ব্যাকআপ ইউটিলিটি। পরীক্ষা করার সময় ডেটা হারাবেন না। ফ্লাইতে ডেটা ম্যানিপুলেট!
উপরের সমস্ত সুন্দর, তবে আপনার যদি প্রয়োজন হয়
তাহলে নিম্নলিখিত কৌশলটি এক এবং একমাত্র উপায়।
প্রথমে সোর্স ডিবি কমান্ড লাইন ক্লায়েন্টের কাছ থেকে স্পুল ফাইলগুলি বা রফতানির ফলাফল সেট কীভাবে তৈরি করা যায় তা শিখুন। দ্বিতীয় গন্তব্য ডিবিতে কীভাবে বর্গ বিবৃতি কার্যকর করতে হয় তা শিখুন।
পরিশেষে, উত্স ডাটাবেসে স্ক্যালি স্ক্রিপ্ট চালিয়ে গন্তব্য ডাটাবেসের জন্য সন্নিবেশ বিবৃতি (এবং অন্য কোনও বিবৃতি) তৈরি করুন। যেমন
SELECT '-- SET the correct schema' FROM dual;
SELECT 'USE test;' FROM dual;
SELECT '-- DROP TABLE IF EXISTS' FROM dual;
SELECT 'IF OBJECT_ID(''table3'', ''U'') IS NOT NULL DROP TABLE dbo.table3;' FROM dual;
SELECT '-- create the table' FROM dual;
SELECT 'CREATE TABLE table3 (column1 VARCHAR(10), column2 VARCHAR(10));' FROM dual;
SELECT 'INSERT INTO table3 (column1, column2) VALUES (''', table1.column1, ''',''', table2.column2, ''');' FROM table1 JOIN table2 ON table2.COLUMN1 = table1.COLUMN1;
উপরের উদাহরণটি ওরাকলের ডিবির জন্য তৈরি করা হয়েছিল যেখানে টেবিল-কম নির্বাচনের জন্য দ্বৈত ব্যবহারের প্রয়োজন।
ফলাফল সেট গন্তব্য db জন্য স্ক্রিপ্ট থাকবে।
উত্স সারণীটি পুনরাবৃত্তি করতে কার্সার ব্যবহার করে ডেটা মাইগ্রেশন স্ক্রিপ্ট তৈরির একটি উদাহরণ এখানে।
SET NOCOUNT ON;
DECLARE @out nvarchar(max) = ''
DECLARE @row nvarchar(1024)
DECLARE @first int = 1
DECLARE cur CURSOR FOR
SELECT '(' + CONVERT(CHAR(1),[Stage]) + ',''' + [Label] + ''')'
FROM CV_ORDER_STATUS
ORDER BY [Stage]
PRINT 'SET IDENTITY_INSERT dbo.CV_ORDER_STATUS ON'
PRINT 'GO'
PRINT 'INSERT INTO dbo.CV_ORDER_STATUS ([Stage],[Label]) VALUES';
OPEN cur
FETCH NEXT FROM cur
INTO @row
WHILE @@FETCH_STATUS = 0
BEGIN
IF @first = 1
SET @first = 0
ELSE
SET @out = @out + ',' + CHAR(13);
SET @out = @out + @row
FETCH NEXT FROM cur into @row
END
CLOSE cur
DEALLOCATE cur
PRINT @out
PRINT 'SET IDENTITY_INSERT dbo.CV_ORDER_STATUS OFF'
PRINT 'GO'
অনেকগুলি অনুসন্ধানের পরে, এটি আমার সেরা শট ছিল:
আপনার যদি প্রচুর ডেটা থাকে এবং একটি কমপ্যাক্ট এবং মার্জিত স্ক্রিপ্টের প্রয়োজন হয় তবে এটি ব্যবহার করে দেখুন: এসএসএমএস সরঞ্জাম প্যাক
এটি লক্ষ্য সারণিতে আইটেমগুলি সন্নিবেশ করতে এবং বেশ ভালভাবে লেনদেন পরিচালনা করতে ইউনিয়ন সমস্ত নির্বাচিত বিবৃতি উত্পন্ন করে।