نمایش نتایج 1 تا 13 از 13

نام تاپیک: انتقال تمام رکوردهای یک جدول به جدول دیگر

  1. #1

    انتقال تمام رکوردهای یک جدول به جدول دیگر

    توجه : دیتابیس دو جدول یکسان هستش، ستون های دو جدول هم یکسان هستش، فقط میخوام تمام رکوردهای یک جدولو انتقال بدم به جدول دیگه.

    سرچ هایی که کردم - باید از دستور زیر استفاده کنم :
    string sqlString = "INSERT INTO " + newTableName + " SELECT * FROM " + currectTableName;


    اما مشکلی که دارم اینه که اینه که میگه id تکراری هستش ( تو هر جدول 1 رکورد دارم_فعلا برای تست_ که خب ID شون 0 هستش )

    System.Data.SqlClient.SqlException: 'Violation of PRIMARY KEY constraint 'PK__LeitnerC__3213E83FC358E792'. Cannot insert duplicate key in object 'dbo.LeitnerCategory0'. The duplicate key value is (0). The statement has been terminated.'
    آخرین ویرایش به وسیله md3848 : سه شنبه 05 شهریور 1398 در 17:16 عصر

  2. #2
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,909

    نقل قول: انتقال تمام رکورد های یک جدول به جدول دیگر

    با سلام
    به جای * از نام فیلدها استفاده کنید و فیلد ID رو قرار ندید
    INSERT INTO dbo.Employees      SELECT FirstName, LastName   
    FROM dbo.Persons;
    لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
    قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
    قوانین پرسش های دانشجویی
    برای درست وارد شدن کد در قالب C#‎‎‎ سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C#‎‎‎ منتفل کنید
    نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها

  3. #3

    نقل قول: انتقال تمام رکورد های یک جدول به جدول دیگر

    string sqlString = "INSERT INTO " + newTableName + " (word, mean, imageURL, homeLVL, dateRead) SELECT word, mean, imageURL, homeLVL, dateRead FROM " + currectTableName + ";";


    خب الان میگه فیلد ID نمیتونه NULL باشه :
    : 'Cannot insert the value NULL into column 'id', table 'C:\USERS\DMF313\DESKTOP\LEITNER\LEITNER\DATABASEW ORDS.MDF.dbo.LeitnerCategory0'; column does not allow nulls. INSERT fails.


    این فیلد PRIMARY KEY هستش؛ کد کامل تعریف جداولم به صورت زیره :
    CREATE TABLE [dbo].[LeitnerCategory0] (    [id]       INT            NOT NULL,
    [word] NVARCHAR (MAX) NOT NULL,
    [mean] NVARCHAR (MAX) NOT NULL,
    [imageURL] NVARCHAR (MAX) NULL,
    [homeLVL] INT DEFAULT ((1)) NOT NULL,
    [dateRead] DATE NOT NULL,
    PRIMARY KEY CLUSTERED ([id] ASC)
    );

  4. #4
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,909

    نقل قول: انتقال تمام رکورد های یک جدول به جدول دیگر

    [ID] [int] IDENTITY(1,1) NOT NULL


    بعدشم من تست کردم مشکلی نداشت !
    CREATE TABLE [dbo].[LeitnerCategory0] (    	[id]       INT            NOT NULL,
    [word] NVARCHAR (MAX) NOT NULL,
    [mean] NVARCHAR (MAX) NOT NULL,
    [imageURL] NVARCHAR (MAX) NULL,
    [homeLVL] INT DEFAULT ((1)) NOT NULL,
    PRIMARY KEY CLUSTERED ([id] ASC)
    );
    GO
    CREATE TABLE [dbo].[LeitnerCategory1] (
    [id] INT NOT NULL,
    [word] NVARCHAR (MAX) NOT NULL,
    [mean] NVARCHAR (MAX) NOT NULL,
    [imageURL] NVARCHAR (MAX) NULL,
    [homeLVL] INT DEFAULT ((1)) NOT NULL,
    PRIMARY KEY CLUSTERED ([id] ASC)
    );
    GO


    INSERT INTO [dbo].[LeitnerCategory1]
    SELECT
    [id] ,
    [word] ,
    [mean] ,
    [imageURL] ,
    [homeLVL]
    FROM [dbo].[LeitnerCategory0]
    GO
    آخرین ویرایش به وسیله danialafshari : سه شنبه 05 شهریور 1398 در 19:30 عصر
    لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
    قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
    قوانین پرسش های دانشجویی
    برای درست وارد شدن کد در قالب C#‎‎‎ سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C#‎‎‎ منتفل کنید
    نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها

  5. #5

    نقل قول: انتقال تمام رکورد های یک جدول به جدول دیگر

    یه سوال - فرقی بین id و ID و Id هستش یا مشکل از استفاده نکردن من از کد (IDENTITY(1,1 هستش؟

  6. #6
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,909

    نقل قول: انتقال تمام رکوردهای یک جدول به جدول دیگر

    فرقی ندارن
    اگر برای جدول مقصد IDENTITY تعیین کنید و در هنگام ارسال ID رو نفرستید با ارور پست 1 مواجهه نمیشید ولی داده تکراری ذخیره میشه
    یک راهی که به نظرم با ارسال ID میرسه این هست که قبلش محتویات جدول رو DELETE یا TRUNCATE کنید
    یا اینکه از LIMIT - TOP - WHERE استفاده کنید
    آخرین ویرایش به وسیله danialafshari : سه شنبه 05 شهریور 1398 در 20:17 عصر
    لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
    قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
    قوانین پرسش های دانشجویی
    برای درست وارد شدن کد در قالب C#‎‎‎ سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C#‎‎‎ منتفل کنید
    نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها

  7. #7

    نقل قول: انتقال تمام رکوردهای یک جدول به جدول دیگر

    نقل قول نوشته شده توسط md3848 مشاهده تاپیک
    توجه : دیتابیس دو جدول یکسان هستش، ستون های دو جدول هم یکسان هستش، فقط میخوام تمام رکوردهای یک جدولو انتقال بدم به جدول دیگه.
    ......
    اصلا چرا ؟!!

  8. #8

    نقل قول: انتقال تمام رکوردهای یک جدول به جدول دیگر

    برنامه مربوطه به لایتنر - کاربر میتونه چندین گروه ایجاد کنه - هر گروه، لغات خودشو داره و به طبع جدول خودشو - حالا کاربر خواست گروه رو حذف کنه - چه بلایی سر لغات بیاد؟ بله منتقل میشه به یه گروه دیگه و یا حذف میشه لغات ( بسته به نظر کاربر )

  9. #9

    نقل قول: انتقال تمام رکوردهای یک جدول به جدول دیگر

    نقل قول نوشته شده توسط md3848 مشاهده تاپیک
    برنامه مربوطه به لایتنر - کاربر میتونه چندین گروه ایجاد کنه - هر گروه، لغات خودشو داره و به طبع جدول خودشو - حالا کاربر خواست گروه رو حذف کنه - چه بلایی سر لغات بیاد؟ بله منتقل میشه به یه گروه دیگه و یا حذف میشه لغات ( بسته به نظر کاربر )
    نیاز نیست هر گروه یک جدول مجزا داشته باشد. این چیزی که گفتید یک رابطه چند به چند هست. در موردش جستجو کنید.

  10. #10

    نقل قول: انتقال تمام رکوردهای یک جدول به جدول دیگر

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
    نیاز نیست هر گروه یک جدول مجزا داشته باشد. این چیزی که گفتید یک رابطه چند به چند هست. در موردش جستجو کنید.
    باشه - با یه جدول انجام میدم - ولی یهو دیدی کل لغات ( رکورد های جدول ) شد 10k - حالا خوندن نوشتن ویرایش حذف و ... یکم زمانبر نمیشه؟
    این "رابطه چند به چند" هم که داستانی داره برا خودش!، مزیت استفاده ازش چیه؟

    الان این جدول منه :
    CREATE TABLE [dbo].[Words] ( 
    [id] INT IDENTITY (1, 1) NOT NULL,
    [word] NVARCHAR (MAX) NOT NULL,
    [mean] NVARCHAR (MAX) NOT NULL,
    [imageURL] NVARCHAR (MAX) NULL,
    [homeLVL] INT DEFAULT ((1)) NOT NULL,
    [dateRead] DATE NOT NULL,
    [categoryName] NVARCHAR (MAX) NOT NULL,
    PRIMARY KEY CLUSTERED ([id] ASC)
    );


    id : که مشخصه چیه.
    word و meam : لغت و معنی هستش.
    imageURL : فعلا مهم نی ولی خب کاربر میتونه برا هر لغتی یه عکس انتخاب کنه - تا مثلا به جای word، عکسش نمایش داده بشه و بعد mean شو حدس بزنه ببینه بلده یا نه - یه چی تو این مایه ها.
    homeLVL : هر لغت داخل یه خونه قرار داره ( میدونی که لایتنر 5-6 تا خونه داره - لغات خونه اول هر روز، خونه دوم 2روز یبار، خونه3، 4 روزیبار، خونه4، 8 روزیبار و ... )
    dateRead : تاریخی که لغت آماده خوندن میشه.
    categoryName : اینم دسته بندی لغات هستش ( طبق گفته شما، تمام جداول رو یکی کردم، فلذا این ستون هم به جدولم اضافه کردم؛ مثلا لغات الکترونیکی، لغات عمومی، لغات تخصصی و .... طرف در شروع برنامه تعیین میکنه که میخواد کدوم دسته از لغات رو مطالعه کنه )

    الان این چیزی که گفتم رابطه چند به چند ( Many To Many ) نیاز داره؟

  11. #11

    نقل قول: انتقال تمام رکوردهای یک جدول به جدول دیگر

    نقل قول نوشته شده توسط danialafshari مشاهده تاپیک
    فرقی ندارن
    اگر برای جدول مقصد IDENTITY تعیین کنید و در هنگام ارسال ID رو نفرستید با ارور پست 1 مواجهه نمیشید ولی داده تکراری ذخیره میشه
    یک راهی که به نظرم با ارسال ID میرسه این هست که قبلش محتویات جدول رو DELETE یا TRUNCATE کنید
    یا اینکه از LIMIT - TOP - WHERE استفاده کنید
    یه مشکل : الان از IDENTITY استفاده میکنم، id خودکار خودش افزایش پیدا میکنه در صورت insert record، ولی اگه یه رکوردی رو حذف کنم، id کاهش پیدا نمیکنه که

    الان رکوردهای id من اینه :
    1
    2
    3
    مثلا مقادیر 2=id رو حذف میکنم که میشه این ( مقدار بقیه id ها اصلاح نمیشه - خیلی ناجور میشه اینطوری ) :
    1
    3
    من توقع داشتم اینطوری بشه :
    1
    2

  12. #12

    نقل قول: انتقال تمام رکوردهای یک جدول به جدول دیگر

    نقل قول نوشته شده توسط md3848 مشاهده تاپیک
    .......
    categoryName : اینم دسته بندی لغات هستش ( طبق گفته شما، تمام جداول رو یکی کردم، فلذا این ستون هم به جدولم اضافه کردم؛ مثلا لغات الکترونیکی، لغات عمومی، لغات تخصصی و .... طرف در شروع برنامه تعیین میکنه که میخواد کدوم دسته از لغات رو مطالعه کنه )

    الان این چیزی که گفتم رابطه چند به چند ( Many To Many ) نیاز داره؟
    اگر یک لغت در چند گروه باشه اونوقت به مشکل میخورید.

    یک جدول برای category نیاز دارید که مثلا گروه الکترونیکی، عمومی، تخصصی و ... را در اون تعریف می کنید که حداقل شامل نام گروه و یک کلیداصلی میشه.
    رابطه بین جدول لغات و جدول category یک رابطه چند به چند هست که برای تعریف این رابطه به یک جدول واسط نیاز دارید که باید حداقل شامل کلیدلغت و کلیدگروه باشه تا مشحص بشه هر گروه شامل چه لغاتیست و هر لغت در چند گروه هست.

    نقل قول نوشته شده توسط md3848 مشاهده تاپیک
    یه مشکل : الان از IDENTITY استفاده میکنم، id خودکار خودش افزایش پیدا میکنه در صورت insert record، ولی اگه یه رکوردی رو حذف کنم، id کاهش پیدا نمیکنه که

    الان رکوردهای id من اینه :
    1
    2
    3
    مثلا مقادیر 2=id رو حذف میکنم که میشه این ( مقدار بقیه id ها اصلاح نمیشه - خیلی ناجور میشه اینطوری ) :
    1
    3
    من توقع داشتم اینطوری بشه :
    1
    2
    داده درون جدول که نباید خودکار تغییر کند!
    شما فرض کن کلیداصلی تغییرناپذیر هست(یا اصلا به ترتیب نیست)
    حالا مشکلی اگر دارید دنبال راه حلش باشید.

  13. #13

    نقل قول: انتقال تمام رکوردهای یک جدول به جدول دیگر

    نقل قول نوشته شده توسط md3848 مشاهده تاپیک
    یه مشکل : الان از IDENTITY استفاده میکنم، id خودکار خودش افزایش پیدا میکنه در صورت insert record، ولی اگه یه رکوردی رو حذف کنم، id کاهش پیدا نمیکنه که

    الان رکوردهای id من اینه :
    1
    2
    3
    مثلا مقادیر 2=id رو حذف میکنم که میشه این ( مقدار بقیه id ها اصلاح نمیشه - خیلی ناجور میشه اینطوری ) :
    1
    3
    من توقع داشتم اینطوری بشه :
    1
    2
    وقتی یه نفر فوت میکنه کلا شناسنامه و کدملیش باطل میشه، قرار نیست کد ملی یه شخص فوت شده رو به یه نفر دیگه نسبت بدن

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •