অন্য ডেটাবেস থেকে এসকিউএল সার্ভার টেবিলের নাম পরিবর্তন করে


10

অন্য ডাটাবেসে কোনও টেবিলটির নাম পরিবর্তন করার জন্য এসকিউএল সার্ভারে কী উপায় আছে? আপনি যখন বর্তমান ডাটাবেসে রয়েছেন এবং TEMP টেবিলের অন্য ডেটাবেসে ডেটা স্থানান্তর করে এবং তারপরে সেই অন্য ডাটাবেসে TEMP টেবিলটির নাম পরিবর্তন করে। আমি "USE [ডাটাবেস]" ব্যবহার করতে চাই না যেহেতু বিভিন্ন সার্ভারে ডাটাবেসের নাম পরিবর্তন হতে পারে।

অগ্রিম সহায়তার জন্য ধন্যবাদ!

উত্তর:


6

এটি করার জন্য আপনার গতিশীল স্কয়ার ব্যবহার করা উচিত। একটি স্ট্রিং তৈরি করুন এবং এটি সম্পাদন করুন। গন্তব্য ডাটাবেসের নাম যতক্ষণ আপনি জানবেন ততক্ষণ সবকিছু ঠিক থাকা উচিত।

use CurrentDB
declare @x varchar(1000), @otherDb sysname = 'NewDB';

set @x = 'use ' + @otherDB + '

EXEC sp_rename ''dbo.temp'', ''temp2''
'
exec (@x);
print @x;
GO

3

এটি অবশ্যই সম্ভব, তবে মনে রাখবেন যে যখন সম্ভব তখন গতিশীল এসকিউএল এড়ানো উচিত । এটি সহজেই সুরক্ষা এবং কর্মক্ষমতা সমস্যার দিকে পরিচালিত করে।

আপনার প্রশ্নটি কিছুটা চিন্তা করার পরে আপনি কি নিশ্চিত যে সঠিক নাম দিয়ে অন্য টেবিলটি তৈরি করা এবং তারপরে কেবল টেম্প টেবিল থেকে এটি সন্নিবেশ করানো আরও বুদ্ধিমান হবে না? আমি ধরে নিচ্ছি টিইএমপি টেবিলটি আসলে স্থানীয় / গ্লোবাল টেম্প টেবিল বা টেবিল ভেরিয়েবল।


3

গতিশীল এসকিউএল ব্যবহার করা

  USE MyDB1
  GO

  DECLARE @db_name   NVARCHAR(20)   = 'myDB2'
  DECLARE @sql       NVARCHAR(1000)

  SET @sql = N'EXEC '+ quotename(@db_name)+ '..sp_rename ''[MyTable]'', ''[YourTable]'';';

  PRINT @sql;
  EXEC SP_EXECUTESQL @sql;

অথবা এক্সইসি-তে ডাটাবেস নির্দিষ্ট করে:

USE MyDB1
GO

EXEC MyDB2..sp_rename 'MyTable', 'YourTable'

যেমনটি বলা হয়েছে http://www.sqlservercentral.com/ Forums /Topic931229-1292-1.aspx


1
MyDB2..sp_renameএতদূর সহজ!
মিশেল ডি রুইটার

0

আপনি এসএসএমএসও ব্যবহার করতে পারেন। এসএসএমএস ব্যবহারের সুবিধা হ'ল এটি আপনার তথ্যসূত্র এবং প্রতিবন্ধকতাগুলির মধ্য দিয়ে যাবে এবং সেগুলির পুনরায় নামকরণ করবে। এসএসএমএসে কেবল অবজেক্ট ব্রাউজারটি খোলার আগ্রহের সারণীটি সন্ধান করুন এবং এর নাম পরিবর্তন করুন। অন্য টেবিলগুলিতে যদি আপনার বিদেশী কী বাধা থাকে যা টেবিলটির নামকরণ করা হচ্ছে উল্লেখ করে তবে সেই কী সংজ্ঞাগুলিতে সেই টেবিলটির নতুন নাম সারণীর নামকরণ করা হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.