PDA

View Full Version : فايل خطاهاي sql در كجاست



shahab2025
یک شنبه 01 آذر 1388, 20:05 عصر
سلام
كسي ميدونه فايلي كه خطاهال sql در اون هست چيه ؟ يا بهتره بگم كدوم table يا ...:گیج:

Reza.ariyan
یک شنبه 01 آذر 1388, 21:41 عصر
تو نصب %tmp%
تو اسکریپت نویسی C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Log
table نداره
البته سیستم عامل من 64 بیتی هست و ممکنه تو سیستم شما فرق کنه
این مسیر ممکنه برای 32 بیتی باشه - (مسیر نسبی هست و دقیق نیست - یعنی حدس میزنم ) - اگه پیدا نکردید دنبال LOG بگردید تو درایو C پیدا میشه ایشاللا ;)
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG

AminSobati
یک شنبه 01 آذر 1388, 23:24 عصر
سلام دوست عزیزم،
اگرچه خطاها در فایل ذخیره میشن، ولی بصورت ساده تر میتونین در محیط Management Studio خطاهای مرتبط رو ببینین. چه نوع خطاهایی مد نظر شماست؟

Reza.ariyan
یک شنبه 01 آذر 1388, 23:42 عصر
سلام
كسي ميدونه فايلي كه خطاهال sql در اون هست چيه ؟ يا بهتره بگم كدوم table يا ...:گیج:
ببین جدول نداره
ولی اینطوری هم میشه ببینی ولی با Select نمیشه هیچ کاری کرد


EXEC master..xp_readerrorlog

Reza.ariyan
یک شنبه 01 آذر 1388, 23:48 عصر
اینطوری میتونی بریزی تو TempTable



EXEC master..xp_readerrorlog
CREATE TABLE #errorlog
(
ErrorText VARCHAR(255),
ContinuationRow INT
)
INSERT INTO #errorlog
SELECT *
FROM #errorlog

DROP TABLE #errorlog

shahab2025
دوشنبه 02 آذر 1388, 00:03 صبح
مرسي پاسخهاتون كلي به دانشم اضافه كرد .
ولي فكر ميكنم من سئوال را بد پرسيدم.

منظورم فايلي كه LOG شده نبود.
فرض كنيد من دستوري را به عنوان QUERY مينويسم كه اشتباه است. به نسبت اشتباه آن سيستم به من يه پيغام ميده . ميخوام بدونم اون پيغام را از كجا مياره ؟؟ چرا هر دفعه كه من همان اشتباه را ميكنم همان پيغام خطا ظاهر ميشه؟:گیج:

منظورم از اين سوال چيه؟؟؟ خوب معلومه با خودم گفتم چه خوب ميشد يكي دوتا از اون پيغامارو ترجمه كنيم تا كاربر ما و خودشو به غلط كردن وادار نكنه تا بفهمه مشكلش از كجاست...

Reza.ariyan
دوشنبه 02 آذر 1388, 00:05 صبح
آقا کدی نوشتم برات ، ، !! کره !!!
هر وقت این کد رو اجرا کنی یه جدول تو بانکت میسازه و Error هاتو برات تو جدول ErrorLoging که ساخته لاگ میکنه
:تشویق::تشویق::تشویق:
ای ول به خودم
:خجالت::خجالت::خجالت:



IF OBJECT_ID('ErrorLoging') IS NOT NULL
BEGIN
DROP TABLE ErrorLoging
IF OBJECT_ID('ErrorLoging') IS NOT NULL
PRINT '<<< FAILED DROPPING ErrorLoging >>>'
ELSE
BEGIN

CREATE TABLE ErrorLoging
(
LogDate DATETIME,
ProcessInfo NVARCHAR(50),
Text NTEXT
)
INSERT INTO ErrorLoging
EXEC master..xp_readerrorlog

SELECT *
FROM ErrorLoging
END
END


برادرا همت کنن کاملتر و بهینه تر بشه

shahab2025 دمت گرم - یه مشکلی هم خودم داشتم که دهنم سرویس شد نتونستم حلش کنم چند ماه پیش - تو این مسئله حل شد
تشکر هم لازم نیست :لبخند:

Reza.ariyan
دوشنبه 02 آذر 1388, 00:10 صبح
این سوالتو میتونی از اینجا بخونی پیدا کنی
http://www.sommarskog.se/error-handling-I.html

Reza.ariyan
دوشنبه 02 آذر 1388, 00:40 صبح
این سوالتو میتونی از اینجا بخونی پیدا کنی
http://www.sommarskog.se/error-handling-I.html

AminSobati
دوشنبه 02 آذر 1388, 08:15 صبح
دوست عزیزم،
تمام پیغامها رو میتونین از یک View به نام sys.messages ببینین. برای نمایش پیغام دلخواه (مثلا فارسی)، خوبه از ساختار begin try.. end try استفاده کنین. با تابع ERROR_NUMBER کد خطا رو بدست بیارید و پیغام دلخواه رو Raise کنید.
راه دیگه اینه که پیغام مورد نظر رو بوسیله sp_AddMessage به sys.messages اضافه کنین و با تغییر Default Language برای لاگین، خود به خود موقع Raise شدن خطا، با زبان مناسب اون لاگین Raise خواهد شد.