আমার একই চাহিদা ছিল এবং এই উত্তরটি খুঁজে পেয়েছি ..
এটি কোম্পানির টেবিলে একটি রেকর্ড তৈরি করে (কমপ), এটি কোম্পানির টেবিলে তৈরি অটো আইডিটি ধরে এবং স্টাফ টেবিলের (স্টাফ) এ ফেলে দেয় যাতে 2 টেবিলগুলি সংযুক্ত করা যায়, অনেক কর্মী এক কোম্পানির সাথে থাকতে পারে। এটি আমার এসকিউএল ২০০৮ ডিবিতে কাজ করে, এসকিউএল 2005 এবং তারপরের উপর কাজ করা উচিত।
===========================
CREATE PROCEDURE [dbo].[InsertNewCompanyAndStaffDetails]
@comp_name varchar(55) = 'Big Company',
@comp_regno nchar(8) = '12345678',
@comp_email nvarchar(50) = 'no1@home.com',
@recID INT OUTPUT
- ' @recID' কোম্পানির স্বতঃ উত্পাদিত আইডি নম্বর ধরে রাখতে ব্যবহৃত হয় যা আমরা ধরতে চলেছি
AS
Begin
SET NOCOUNT ON
DECLARE @tableVar TABLE (tempID INT)
- উপরের লাইনটি পরে ব্যবহারের জন্য স্বয়ংক্রিয় উত্পাদিত আইডি নম্বর ধরে রাখতে একটি অস্থায়ী টেবিল তৈরি করতে ব্যবহৃত হয়। এটা শুধুমাত্র একটি ক্ষেত্র 'tempID' এবং তার টাইপ INT হিসাবে একই '@recID' ।
INSERT INTO comp(comp_name, comp_regno, comp_email)
OUTPUT inserted.comp_id INTO @tableVar
- ' OUTPUT .োকানো হয়েছে। 'উপরের লাইনটি এখনই যে রেকর্ড তৈরি করছে তাতে যে কোনও ক্ষেত্র থেকে ডেটা দখল করতে ব্যবহৃত হয়। আমরা যে ডেটা চাই তা হ'ল আইডি স্বায়ত্তশাসন। তাই নিশ্চিত করুন যে এতে বলছেন আপনার টেবিল জন্য সঠিক ক্ষেত্র নাম, আমার 'comp_id' । এটি পরে আমরা তৈরি করা অস্থায়ী টেবিলের মধ্যে ফেলে দেওয়া হয় dropped
VALUES (@comp_name, @comp_regno, @comp_email)
SET @recID = (SELECT tempID FROM @tableVar)
- উপরের লাইনটি আমাদের তৈরি করা অস্থায়ী টেবিলটি অনুসন্ধান করতে ব্যবহৃত হয়েছিল যেখানে আমাদের প্রয়োজনীয় ID সংরক্ষণ করা হয়েছে। যেহেতু এই অস্থায়ী টেবিলটিতে কেবল একটি রেকর্ড রয়েছে এবং কেবল একটি ক্ষেত্র, এটি কেবল আপনার প্রয়োজনীয় আইডি নম্বরটি নির্বাচন করবে এবং এটিকে ' @recID ' এ ফেলে দেবে। ' @recID ' এর এখন আপনার পছন্দমতো আইডি নম্বর রয়েছে এবং আপনি নীচে এটি ব্যবহার করেছেন এমনভাবে আপনি কীভাবে এটি ব্যবহার করতে পারেন।
INSERT INTO staff(Staff_comp_id)
VALUES (@recID)
End
- সুতরাং আপনি সেখানে যান। 'আউটপুট sertedোকানো হয়েছে inWhatEverFieldNameYouWant ' লাইনে আপনি যা চান তা আসলেই ধরতে পারেন এবং আপনার অস্থায়ী সারণীতে আপনি কোন ক্ষেত্রগুলি চান তা তৈরি করতে পারেন এবং আপনি যেভাবে চান তা ব্যবহার করতে এটি অ্যাক্সেস করতে পারেন।
আমি যুগে যুগে এই জাতীয় কিছু খুঁজছিলাম, এই বিশদ বিরতি সহ, আমি আশা করি এটি সাহায্য করবে।
OUTPUT INSERTED.IDটেবিলে একটি সক্রিয় ট্রিগার ক্ষেত্রে সমস্যা তৈরি করতে পারে