অস্থায়ী সারণীতে ডেটা .োকানো হচ্ছে


195

একটি অস্থায়ী টেবিল তৈরি করার পরে এবং এর মতো ডেটা ধরণের ঘোষণা করার পরে;

 CREATE TABLE #TempTable(
 ID int,
 Date datetime,
 Name char(20))

এরপরে আমি কীভাবে প্রাসঙ্গিক ডেটা প্রবেশ করবো যা ইতিমধ্যে ডাটাবেসের মধ্যে কোনও শারীরিক টেবিলে রাখা আছে?

উত্তর:


244
INSERT INTO #TempTable (ID, Date, Name) 
SELECT id, date, name 
FROM physical_table

5
এটি শেষ হয়ে গেলে টেবিলটি ফেলে রাখার কথা মনে রাখবেন, অন্যথায় আপনি "ডাটাবেসে ইতিমধ্যে '# টেম্পটেবল' নামে একটি অবজেক্ট আছে is" ত্রুটি (আপনার কি আবার ক্যোয়ারী চালানো উচিত ...)
Rhdr

প্রাথমিক প্রশ্নটি টেবিল সম্পর্কে ছিল, এটি ইতিমধ্যে তৈরি করা হয়েছিল। টিপটি কার্যকর হওয়ায় এটি লেখকের প্রশ্নের সাথে সংযুক্ত নয়
অ্যালেক্সসুলিন

98

সমস্ত কলাম থেকে সমস্ত ডেটা Toোকাতে, কেবল এটি ব্যবহার করুন:

SELECT * INTO #TempTable
FROM OriginalTable

DROPএটি শেষ করে এবং আবার এটি তৈরির চেষ্টা করার আগে অস্থায়ী টেবিলটি ভুলে যাবেন না :

DROP TABLE #TempTable

9
আমি এটি পছন্দ করি কারণ আমি করতে হবে নাCREATE#TempTable
MAbraham1


41

Insertএসকিউএল সার্ভারে আমার উপায় । এছাড়াও আমি সাধারণত পরীক্ষা করি যে কোনও অস্থায়ী টেবিল রয়েছে কিনা।

IF OBJECT_ID('tempdb..#MyTable') IS NOT NULL DROP Table #MyTable

SELECT b.Val as 'bVals'
  INTO #MyTable
FROM OtherTable as b


15

একই সমস্যাটি সমাধান করার জন্য আমি দুটি উপায় প্রদান করেছি,

সমাধান 1: এই পদ্ধতির 2 টি পদক্ষেপ অন্তর্ভুক্ত রয়েছে, প্রথমে নির্দিষ্ট ডেটা টাইপ সহ একটি অস্থায়ী টেবিল তৈরি করুন, পরবর্তী বিদ্যমান ডাটা টেবিল থেকে মান সন্নিবেশ করুন।

CREATE TABLE #TempStudent(tempID  int, tempName  varchar(MAX) )
INSERT INTO #TempStudent(tempID, tempName) SELECT id, studName FROM students where id =1

SELECT * FROM #TempStudent

সমাধান 2: এই পদ্ধতিটি সহজ, যেখানে আপনি অস্থায়ী টেবিলের মধ্যে মানগুলি সরাসরি সন্নিবেশ করতে পারেন, যেখানে স্বয়ংক্রিয়ভাবে সিস্টেম একই ডাটা টাইপের মূল টেবিলের সাহায্যে টেম্প টেবিল তৈরির যত্ন নেয়।

SELECT id, studName  INTO #TempStudent FROM students where id =1

SELECT * FROM #TempStudent

যদিও আমি স্বীকার করেছি যে এটি একটি টেম্প টেবিল, তবুও আমি কখনও কাউকে বারচর (ম্যাক্স) ব্যবহারের পরামর্শ দেব না।
বিপি_

8

সঠিক জিজ্ঞাসা:

drop table #tmp_table

select new_acc_no, count(new_acc_no) as count1
into #tmp_table
from table
where unit_id = '0007' 
group by unit_id, new_acc_no
having count(new_acc_no) > 1

10
এই প্রশ্নের প্রশ্নের সাথে কোনও সম্পর্ক নেই। আপনি এই তথ্য অন্য কোথাও থেকে নিয়েছেন। সরানো হচ্ছে new_acc_no, unit_id = '0007', group by, having count(new_acc_no) > 1, ইত্যাদি রূপান্তরিত একটি সঠিক ডুপ্লিকেট মধ্যে উত্তর: stackoverflow.com/a/15762663/1476885
Zanon

7

আপনি টেম্প টেবিল তৈরি করার পরে আপনি কেবল একটি সাধারণ কাজ করবেন INSERT INTO () SELECT FROM

INSERT INTO #TempTable (id, Date, Name)
SELECT t.id, t.Date, t.Name
FROM yourTable t

5
insert into #temptable (col1, col2, col3)
select col1, col2, col3 from othertable

নোট করুন যে এটি দুর্বল অনুশীলন হিসাবে বিবেচিত:

insert into #temptable 
select col1, col2, col3 from othertable

যদি টেম্প টেবিলের সংজ্ঞাটি পরিবর্তন করতে হয়, কোড রানটাইম ব্যর্থ হতে পারে।



3

অস্থায়ী টেবিলের বেসিক অপারেশনটি নীচে দেওয়া হয়েছে, আপনার প্রয়োজনীয়তা অনুসারে সংশোধন এবং ব্যবহার করুন,

- একটি টেম্প টেবিল তৈরি করুন

CREATE TABLE #MyTempEmployeeTable(tempUserID  varchar(MAX), tempUserName  varchar(MAX) )

- একটি টেবিলে টেবিলের মধ্যে মূল্য নির্ধারণ করুন

INSERT INTO #MyTempEmployeeTable(tempUserID,tempUserName) SELECT userid,username FROM users where userid =21

- QUERY একটি টেম্প টেবিল [এটি কেবল একই অধিবেশন / ইনস্ট্যান্সে কাজ করবে, অন্য ব্যবহারকারীর সেশন দৃষ্টান্তে নয়]

SELECT * FROM #MyTempEmployeeTable

- টেম্প ট্যাবলে মূল্য নির্ধারণ করুন

DELETE FROM #MyTempEmployeeTable

- একটি টেম্প টেবিল ড্রপ

DROP TABLE #MyTempEmployeeTable

যদিও আমি স্বীকার করেছি যে এটি একটি টেম্প টেবিল, তবুও আমি কখনও কাউকে বারচর (ম্যাক্স) ব্যবহারের পরামর্শ দেব না।
বিপি_

@bp_ এটি একটি সাধারণ নমুনার স্নিপেট যা ব্যবহারকারী এবং ব্যবহারকারী তাদের প্রয়োগের প্রয়োজনীয়তার উপর ভিত্তি করে ডেটা টাইপ এবং এর আকার নির্দিষ্ট করতে পারে explains
ভুবনেশ মোহনকুমার

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