بایگانی

بایگانی برای دسته ی ‘MSSQL Server’

Linked Server بین SQL Server 2008 R2 and SQL Server 2000

برای برقراری ارتباط بین  SQL سرور۲۰۰۰ و SQL سرور ۲۰۰۸ ۶۴ بیتی ،درزمان استفاده از Linked Server در صورتی که با خطای زیر مواجه شدید:

OLE DB provider “SQLNCLI10″ for linked server “XXXXXX” returned message “The stored procedure required to complete this operation could not be found on the server. Please contact your system administrator.”

در DataBase  ، Master بر روی SQL سرور۲۰۰۰  ،StoredProcedures  زیر را اجرا نمایید:

نوشته شده توسط خانم مهندس پریسا مینوکده

 

Categories: MSSQL Server Tags:

رفع اشکال حذف سطر از جدول subscribe

Fixing Missing Rows error in transactional replication

 

اگر سطری از جدولی که در transactional replication هست و subscribe هست  حذف کنید و سپس از جدول publication سطر و یا سطرهای مربوطه را بخواهید حذف کنید رپلیکیشن مواجه با خطا خواهد شد. زیرا رپلیکیشن انتظار دارد که سطر مربوطه در subscribe وجود داشته باشد و چون وجود ندارد لذا دستورات اجرا نخواهد شد و مرتب خطا در یافت خواهید کرد. این خطاها مانع از اجرای سایر دستورات رپلیکیشن خواهد شد. بنابر این مجبورید که مشکل را حل کنید. البته بهتر بود که از اول مشکل ایجاد نمی کردید و سطرها را از جدول subscribe حذف نمی کردید.

حال اگر ID رکوردهای حذف شده را می دانید آنها را با همان ID ایجاد کنید تا کار رپلیکیشن بدرستی انجام گیرد. در واقع رپلیکیشن آنها را حذف خواهد کرد.

اما اگر ID ها را ندارید بطریق زیر می توانید ID ها را بدست آورید

مثلا فرض کنید که خطای زیر را دریافت کرده اید

البته اگر حوصله داشته باشید می توانید از طریق دستور زیر خطا و یا خطاهای مشابه را بدست آورید

دستور زیر را در T-SQL اجرا کنید

سپس دستور زیر را اجرا کنید

با اجرای دستور فوق در ستون command سطری مشابه زیر را دریافت خواهید کرد

Fixing Missing Rows error in transactional replication

Fixing Missing Rows error in transactional replication

یعنی جدولی مشابه تصویر فوق

که در آن عدد ۳ نشانگر ID سطر حذف شده است. به جدول subscribe بروید و سطر مورد نظر را با ID 3 در آن ایجاد کنید. حال اگر سطرهای دیگری وجود داشته باشند باید در مورد آنها هم همین کارها را بکنید. اگر همه سطرها را ایجاد کرده باشید مطمئن باشید که رپلیکیشن به کار درست خود ادامه خواهد داد.

 

Categories: MSSQL Server Tags:

ریکاوری یا دوباره سازی فایل مستر MSSQL Server

How to Rebuild System Databases in SQL Server 2008

اگر در استارت سکیول سرور خطای Error: 3417 را دریافت کنید به احتمال زیاد مشکل فایل master.mdf را خواهید داشت. مثلا ممکن است این فایل خراب شده باشد با اینکه مثلا زیپ شده باشد.

اگر این فایل خراب شده باشد می توانید با استفاده از روش زیر آنرا بازیابی کنید

به دایرکتوری زیر بروید و یا متناسب با ورژن نصب شده برنامه setup را از داخل DVD اجرا کنید

دستورات زیر را می توانید وارد کنید. سینتکس دستور عبارت است از

نمونه دستور

دستور فوق البته پارامترهای زیادی دارد مثلا گاهی اوقات ممکن است که خطای TIMESTAMP را دریافت کنید. می توانید دستور زیر را وارد کنید

 

 

Categories: MSSQL Server Tags:

نحوه بازیابی پسورد sa در سکیول سرور sql server 2008 r2

۳۰ شهریور ۱۳۹۳ ۱۰ دیدگاه

How to recover SA password on Microsoft SQL Server 2008 R2

برای بازیابی پسورد sa در سکیول سرور بطریق زیر عمل نمائید

۱- sql server configuration manager را اجرا کنید

اگر در اجرای آن مشکل داشتید یعنی پیغام خطای WMI را گرفتید با اجرای دستور زیر در منوی Run اشکال آن را رفع کنید. البته می توانید این دستورات را در cmd بشکل صحیحش وارد کنید و یا اینکه از طریق دستور cmd به دایرکتوری مربوطه رفته و دستور mofcomp زا مسیر صحیح اجرا کنید.

 

2- روی sql server services کلیک کنید

۳- روی instance دلخواه از باکس سمت راست کلیک راست کنید و سرویس آنرا stop  کنید

۴- روی instance مربوطه کلیک راست کنید و Properties را انتخاب کنید

۵- از تب advance سطر startup parameters را پیدا کنید و حرف -m: را به اول آن اضافه کنید (حرف m نشاندهنده single user بودن دیتابیس هست)مشابه شکل زیر

توجه داشته باشید که اگر SQL Server 2012 باشد باید به شکل زیر عمل کنید

۶- دوباره روی instance مربوطه کلیک راست کنید و سرویس را start کنید

۷- صفحه cmd را باز کنید و دستور sqlcmd را وارد کنید شکل پرامت بشکل >1 عوض خواهد شد.

۸- به ترتیب دستورات زیر را وارد کنید

توجه داشته باشید که اگر Instance دیفالت نبود بشکل زیر عمل کنید

 

9- توجه داشته باشید که پسورد وارده باید strong password policy را رعایت کرده باشد.

۱۰- حالا باید نقش SYSADMIN را به یوسر مربوطه اختصاص دهیم

11- مجدد سرویس را stop کنید و -m; را از ابتدای سطر مربوطه حذف کنید

۱۲- سرویس را start کنید و با یوسری که تعریف کرده اید وارد شده و پسورد sa را تغییر دهید.

 

 

Categories: MSSQL Server Tags:

حفاظت از تریگرها در مقابل رپلیکیشن در SQL Server

How to protect sql server triggers against replications?

حتما برای شما پیش آمده است که خواسته باشید رپلیکیشنی ما بین دو تا سکیول سرور انجام دهید. خوب حتما با طرز کار این مسئله آشنا هستید اگر هم مشکلی باشد می توانید به پست های قبلی این وب سایت مراجعه کنید.

حال ممکن است که شما در دیتابیس مقصد تریگرهای شخصی خودتان را داشته باشید. می دانید که بطور نرمال وقتی رپلیکیشن روی آن جدول انجام می شود همه استراکچر جدول مقصد را پاک می کند بنابر این تریگر ها هم پاک خواهند شد. اگر بخواهید تریگرهائی را که روی جدول مقصد نوشته اید حین رپلیکیشن حفظ کنید بطریق زیر عمل کنید.

  1. Microsoft SQL Server Management Studio  را اجرا کنید
  2. Replication  و Local Replication را باز کنید
  3. روی پابلیکیشنی که ساخته اید کلیک راست کنید
  4. منوی Properties را انتخاب کنید
  5. روی Articles کلیک کنید
  6. از باکس سفید سمت راست یعنی Objects to publish جدول مورد نظر خود را انتخاب کنید HighLight کنید
  7. از سمت راست Article Properties را باز کنید
  8. منوی Set Properties of HighLighted Table Article را انتخاب کنید
  9. از باکس سفید رنگ Properties روبروی گزینه Action if name is in use لیست باکس مربوطه را باز کنید
  10. Keep existing object unchanged را انتخاب کنید و مراحل تایید را با زدن کلیدهای OK به اتمام برسانید

بدین وسیله تریگرها Triggers حفظ خواهند شد و لازم نیست مرتب تریگرها را بازنویسی کنید

 

Categories: MSSQL Server Tags:

SQL JOINS

۱ اردیبهشت ۱۳۹۳ بدون دیدگاه

تصویر زیر انواع SQL JOIN را بطور ساده نشان می دهد. این تصویر از فیس بوک دوست گرامی جناب آقای مهندس امیر راسخ برداشته شده است.

SQL JOINS

 

 

Categories: MSSQL Server Tags:

نحوه شرینک لاگ فایل MSSQL Server

۲۵ فروردین ۱۳۹۳ بدون دیدگاه

Shrinking the Transaction Log in MSSQL Server

همچنانکه می دانید گاهی اوقات به هر دلیلی لاگ فایل سکیول سرور بیش از حد رشد می کند و حجم آن از جهت ذخیره سازی مشکل ایجاد می کند. برای این منظور شاید لازم شود که لاگ فایل را کوچک یا اصطلاحا شرینک کرد. این کار به دو طریق قابل انجام است. توجه داشته باشید که این دستورات صرفا برای لاگ فایل هست نه برای دیتابیس فایل

۱- از طریق Transact-SQL

2 – از طریق Microsoft SQL Server Management Studio

  • روی دیتابیس کلیک راست کنید
  • Properties را انتخاب کنید
  • Options را انتخاب کنید
  • Recovery Model را به Simple تغییر دهید و Ok کنید
  • دوباره روی دیتابیس کلیک راست کنید
  • به ترتیب Tasks > Shrink > Files را انتخاب کنید
  • File Type را به Log تغییر دهید
  • کلید OK را بزنید
  • دوباره روی دیتابیس کلیک کنید
  • properties را انتخاب کنید
  • Options را انتخاب کنید
  • Recovery Model را به Full تغییر دهید و OK کنید
Categories: MSSQL Server Tags:

نحوه تعریف یک فیلد در sql بعنوان unique constraint

SQL UNIQUE Constraint

همچنانکه می دانید  Primary Key یا به اختصار PK یک فیلد کلید هست و  طوری تعریف می شود که Unique باشد. بدین صورت که امکان درج مقدار دوبل در آن وجود ندارد و اغلب در طراحی جداول، فیلدی را که می خواهند یونیک باشد و در ارجاعات و یا ریلیشن ها آن را مورد استفاده قرار دهند از نوع PK تعریف می کنند.

اما شاید بخواهید که فیلد دیگری را یونیک تعریف کنید به این معنا که امکان درج دوبل در آن وجود نداشته باشد. برای این منظور بطور زیر عمل کنید.

  • sql server management studio را باز کنید
  • روی جدول مورد نظر راست کلیک کنید
  • منوی Design را انتخاب کنید
  • فیلد مورد نظر را انتخاب کنید
  • منوی Indexes/Keys را انتخاب کنید
  • کلید Add را بزنید
  • از فیلد Columns فیلد مورد نظر را انتخاب کنید
  • مقدار Type را از Index به Unique Key تغییر دهید.

البته با استفاده از دستورات T-SQL زیر نیز می توانید فیلد Unique تعریف کنید.

اگر جدولی از قبل ایجاد کرده اید به طریق زیر عمل کنید

تعریف فیلد Unique

تعریف دو تا فیلد بصورت Unique

حذف یا Drop یونیک

در مورد بحث فوق چند تا نکته حائز اهمیت هست

PK اطلاعات را در Page های فایل های sql یعنی همون .mdf بصورت فیزیکی مرتب می کند

اما در ایندکس فایل ها بصورت مجازی مرتب می شوند یعنی لیستی وجود دارد که به داده های روی page ها اشاره می کند

اغلب فیلد uniqe با فیلد خارجی یعنی همون Fringe key اشتباه گرفته می شود. تفاوت ایندو در این هست که FK بمنظور برقراری Releation بین جداول بکار می رود. هرچند unique هست اما به جدول دیگری اشاره می کند. در حالی که فیلد یونیک بمنظور جلوگیری از درج تکراری دیتاها طراحی می شود.

 

 

Categories: MSSQL Server Tags:

رفع خطای عدم اجرای agent در رپلیکیشن

Unable to start execution of step 1 (reason: Error authenticating proxy [Domain\Account] system error: Logon failure: unknown user name or bad password.). The step failed

گاهی اوقات اجرای رپلیکیشن بین دو Sql Server بخاطر خطای Sql server Agent متوقف می شود. اگر خطای فوق را در مانیتور رپلیکیشن مشاهده کردید بطریق زیر می توانید رفع خطا کنید

  • Run Sql server management studio
  • open replication
  • right click on your publication
  • select properties
  • select Agent security
  • set or change your desired account and password

 

Categories: MSSQL Server Tags:

تغییر schema owner در Sql Server

How to change schema owner

گاهی اوقات بنابه دلایل مختلف لازم می شود که owner یک schema را تغییر دهیم. مثلا ممکن است که نتوان user ای را حذف کرد ( دریافت خطای زیر: Sql server error: 15138) و یا به هر دلیل دیگر.

برای این منظور می توان لیستی از وضعیت schema ها را ملاحظه کرد. enterprise manager را باز کنید و بترتیب

Your database > Security > schema سپس از منوی View منوی Object explorer Details را انتخاب کنید

 

حال مثلا بخواهیم owner ها را تغییر دهیم. ابتدا می توان با دستور زیر وضعیت کاربر را بررسی کرد.

و در نهایت می توان با استفاده از دستور زیر owner را تغییر داد

 

 

 

 

Categories: MSSQL Server Tags:
IP Blocking Protection is enabled by IP Address Blocker from LionScripts.com.