PDA

View Full Version : مشکل درتغییر تنظیمات دیتابیس روی سرور



fereshte22
شنبه 20 بهمن 1386, 12:10 عصر
سلام
مشکلی که برای من پیش اومده اینه که من دیتابیس خود را بر روی سرور فرستادم(با روش export data
بعد از فرستادن دیتابیس متوجه شدم که مقدار identity که برای مقدار کلید اصلی تنظیم کرده بود بر روی سرور تعیین نشده است.
برای همین تنظیمات مورد نظر را برای همه جداول انجام دادم.
ولی برای یکی از جدولهام با خطای زیر مواجه شدم(جدول sabadkharid


Error: There is already an object named 'sabadkharid_Temp' in the database.
Source: .Net SqlClient Data Provider


البته یه جدول به نام sabadkharid_Temp به جدول هام اضافه شده که هر چقدر حذفش میکنم خود به خود اضافه میشود و دوباره با همین خطا مواجه میشوم.

raravaice
شنبه 20 بهمن 1386, 12:18 عصر
البته یه جدول به نام sabadkharid_Temp به جدول هام اضافه شده که هر چقدر حذفش میکنم خود به خود اضافه میشود و دوباره با همین خطا مواجه میشوم.


قبل از اجرای برنامه web app یا بعد از اون؟

reza_rad
شنبه 20 بهمن 1386, 12:28 عصر
برای همین تنظیمات مورد نظر را برای همه جداول انجام دادم.
این تنظیمات رو چطور انجام دادید؟
از طریق ویزارد یا sql script یا جور دیگه؟


یه جدول به نام sabadkharid_Temp به جدول هام اضافه شده که هر چقدر حذفش میکنم خود به خود اضافه میشود و دوباره با همین خطا مواجه میشوم.
مطمئن هستید که این جدول حذف میشه درست؟ یا اینکه هنگام حذف ارور دریافت می کنید؟

fereshte22
شنبه 20 بهمن 1386, 16:28 عصر
سلام
از توجه دوستان گرامی ممنون هستم
فعلا با حذف جدول مورد نظر از روی سرور و export مجدد اون مشکل حل شد.
در جواب دوستان عزیز هم باید بگم که این مشکل بعد از اجری برنامه به وجود میاومد.
در ضمن من با ویزارد تنظیمات را انجام دادم و در هنگام حذف sabadkharid_Temp هم خطایی نمیگرفت.و من نفهمیدم مشکل چی بود؟

fereshte22
یک شنبه 21 بهمن 1386, 10:25 صبح
سلام
راستش این مشکل دست از سر من بر نمیدارد و در بقیه جدول ها هم این مشکل پیش اومده
و هر موقع که میخواهم تغییری در این جدول ایجاد کنم دوباره همین مشکل پیش میاد.
در ضمن جالبه که همه تغییرات در جدول nametable_Temp اعمال میشود.
البته این را هم اضافه کنم که من وقتی جدول هام را به روی سرور و با روش export dat میفرستم نوع بعضی از فیلدهام تغییر میکند.
مثلا nvarchar(MAX) به ntext تبدیل میشود و این تغییر نوع باعث ایجاد مشکلاتی شده
و در حین همین تغییر نوع ها و تنظیم اون مشکلی که گفتم پیش می اید.
میخواستم بپرسم که دلیل این مشکلات چی میتونه باشد

Elham_gh
یک شنبه 21 بهمن 1386, 15:33 عصر
SQL Server از نسخه بعدی بعضی از انواع داده را پشتیبانی نمی کند.مانند NTEXT,TEXT,IMAGE.و تاکید دارد که این نوع داده ها را به معادلشان تغییر دهید. به همین جهت خودش این تغییرات رو می ده. اما این مشکل ساز نیست!

raravaice
یک شنبه 21 بهمن 1386, 15:54 عصر
یک بار بانک خودتونو با sql script تو سرور بسازید ببنید عکس العمل چیه؟

موفق باشید

raravaice
یک شنبه 21 بهمن 1386, 20:58 عصر
شما به دیتابیس سرور وصل شو بعد همونطوری که اونجا query هاتونو اجرا میکنید این script رو هم اجرا کنید.

fereshte22
یک شنبه 21 بهمن 1386, 22:00 عصر
خوب ببخشید من میخواستم تاپیک قبلیم را ویرایش کنم که اشتباهی پاکش کردم
دوست عزیز raravaice از راهنمایتون ممنون هستم
ولی سوالی که داشتم اینه که وقتی میخواهیم این script را اجرا کنیم به جای مقادیر name و user و login چه مقداری باید قرار دهیم


IFNOTEXISTS(SELECT*FROMsys.database_principalsWHER Ename= N'')
CREATEUSER [] FORLOGIN [] WITH DEFAULT_SCHEMA=[dbo]


مقادیر اولیه را که طبیعتا قبول نمیکند.من به جای name نام سرور و به جای user یه مقدار دلخواه قرار دادم ولی به جای login هر مقداری قرار میدهم قبول نمیکند.
میشه بگید مقادیر صحیح به چه صورت باید تنظیم شود؟
و در ضمن ایا باید دیتابیس را قبلا روی سرور بسازیم یا اینکه اجرای این script کافیه
ممنون

raravaice
سه شنبه 23 بهمن 1386, 13:01 عصر
باید سورستون رو یه بررسی کامل کنید چون این مسئله یه مقدار پیچیده به نظر میاد.

سورس رو با چی نوشتین؟
تو تالار مربوط بزارین بررسی بشه.

fereshte22
سه شنبه 23 بهمن 1386, 13:12 عصر
سلام
من دوباره اومدم سوالم را ویرایش کنم اون را حذف کنم
من خط زیر را که از script حذف کردم


IFNOTEXISTS(SELECT*FROMsys.database_principalsWHER Ename= N'')
CREATEUSER [] FORLOGIN [] WITH DEFAULT_SCHEMA=[dbo]



کوری بدون مشکل اجرا شد و جداول هم ایجاد شد
ولی حالا مشکلی که دارم اینه که وقتی میخواهم مقادیر جدول ها را به صورت دستی بدم همین که روی دکمه insert کلیک میکنم خطای زیر را میدهد.


Error: Incorrect syntax near ')'.
Source: .Net SqlClient Data Provider



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

fereshte22
سه شنبه 23 بهمن 1386, 13:28 عصر
باید سورستون رو یه بررسی کامل کنید چون این مسئله یه مقدار پیچیده به نظر میاد.

سورس رو با چی نوشتین؟


دوست عزیز من الان مشکلم با sql است.و همه کارها را به صورت دستی و با جداول موجود روی سرور انجام میدهم
یعنی سورس من چه مشکلی میتونه به وجود بیاورد در حالی که این کارها را دستی دارم انجام میدهم.

در ضمن ایا sqlscript را درست اجرا کردم و باید اون دو خط را حذف کنیم؟
در ضمن چرا نوع nvarchar(max روی سرور به ntext تبدیل میشود

AminSobati
سه شنبه 23 بهمن 1386, 23:13 عصر
دوست عزیزم من حدس میزنم مشکل از نا همگون بودن نسخه SQL Server در مبدا و مقصد هست. ممکنه بفرمایید هر کدوم چه ورژنی هستند؟ با توجه به خطا گرفتن از دستور CREATE USER ممکنه نسخه 2000 باشه در مقصد!

fereshte22
چهارشنبه 24 بهمن 1386, 09:52 صبح
دوست عزیزم من حدس میزنم مشکل از نا همگون بودن نسخه SQL Server در مبدا و مقصد هست. ممکنه بفرمایید هر کدوم چه ورژنی هستند؟ با توجه به خطا گرفتن از دستور CREATE USER ممکنه نسخه 2000 باشه در مقصد!

احتمال زیاد در مقصد هم 2005 هست چون وقتی با ادرس سرور sql server management را باز میکنم Sql server 9.0.3054 را نشان میدهد
اقای ثباتی میشه بفرمایید من در اجرای script به جای user و name و login چه چیزی باید قرار دهم.با توجه به اینکه وقتی حذفش هم نمیکنم جدول ها ایجاد میشوند.

AminSobati
پنج شنبه 25 بهمن 1386, 00:06 صبح
بعنوان مثال:


IF NOT EXISTS(SELECT * FROM sys.database_principals WHERE name= N'MyUser')
CREATE USER [MyUser] FOR LOGIN [MyLogin] WITH DEFAULT_SCHEMA=[dbo]

به این شرط که MyLogin در Logins وجود داشته باشه