Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
Author |
Topic |
AskSQLTeam
Ask SQLTeam Question
0 Posts |
Posted - 2006-05-24 : 07:44:03
|
Unes writes "Hi,In my SQL database I can not view or DELETE one of my procedure. I do not know what happened to my procedure. I get the following error:Error 8908: Table Error: Database ID 7, Object ID 6, Index ID 0. Chain Linkage Mismatch. --(1:309) --> Next = (1:376), but (1:376) --> prev = (1:414)I appreciate your help.Unes" |
|
harshal_in
Aged Yak Warrior
633 Posts |
Posted - 2006-05-25 : 06:45:51
|
http://support.microsoft.com/kb/811205 |
|
|
paulrandal
Yak with Vast SQL Skills
899 Posts |
Posted - 2006-05-25 : 12:15:54
|
quote: Originally posted by harshal_in http://support.microsoft.com/kb/811205
That's got nothing to do with it - Object ID 6 is not sysfiles1, as explained in the KB article you mentioned. Object ID 6 is syscomments, which holds SP definitions, which is why this error occured (I'm guessing) when Unes tried to delete the SP.Unes,Can you post the output of:DBCC CHECKDB (yourdb) WITH ALL_ERRORMSGS, NO_INFOMSGSWhat version + SP level are you using?Did anything unusual happen before this? Any IO errors in the SQL errorlog or Windows event log?ThanksPaul RandalLead Program Manager, Microsoft SQL Server Storage Engine + SQL Express(Legalese: This posting is provided "AS IS" with no warranties, and confers no rights.) |
|
|
Unes
Starting Member
8 Posts |
Posted - 2006-05-31 : 10:07:17
|
Sometimes for update purposes I replace my db file from my Notebook to my PC and vice versa.I did not recieve any error message before. Quite by accident I checked this procedure and I saw the error. Now I noticed this error exists on few sp.I am using SQL 2000 with SP4.I have already seen the Microsoft article, they identify the Error, but I did not see a solution which I could use for my problem.I appreciate your input.I run DBCC CHECKDB (ItemsSoftware)Server: Msg 8978, Level 16, State 1, Line 1Table error: Object ID 6, index ID 1. Page (1:91) is missing a reference from previous page (1:334). Possible chain linkage problem.Server: Msg 8981, Level 16, State 1, Line 1Table error: Object ID 6, index ID 1. The next pointer of (1:334) refers to page (1:177). Neither (1:177) nor its parent were encountered. Possible bad chain linkage.Server: Msg 8934, Level 16, State 1, Line 1Table error: Object ID 6, index ID 1. The high key value on page (1:309) (level 0) is not less than the low key value in the parent (0:1), slot 0 of the next page (1:376).Server: Msg 8935, Level 16, State 1, Line 1Table error: Object ID 6, index ID 1. The previous link (1:414) on page (1:376) does not match the previous page (1:309) that the parent (1:51), slot 108 expects for this page.Server: Msg 8936, Level 16, State 1, Line 1Table error: Object ID 6, index ID 1. B-tree chain linkage mismatch. (1:309)->next = (1:376), but (1:376)->Prev = (1:414).Server: Msg 8978, Level 16, State 1, Line 1Table error: Object ID 6, index ID 1. Page (1:549) is missing a reference from previous page (1:376). Possible chain linkage problem. |
|
|
Unes
Starting Member
8 Posts |
Posted - 2006-05-31 : 12:47:11
|
Article http://doc.ddart.net/mssql/sql2000/html/trblsql/tr_reslsyserr_2_2coj.htmexplains more thoroughly the causes of the error. Based on this article the problem lays on the table which the proc is working on. But amazingly my table is fine! Select * from Dealers where Dealer = 'Aeffi'present the data no problem, But pr_Dealers @ProcCode = 'Find', @Dealer = 'Aeffi'which suppose to present the same data gives the following error:Server: Msg 8908, Level 22, State 6, Procedure pr_Dealers, Line 1Table error: Database ID 7, object ID 6, index ID 0. Chain linkage mismatch. (1:334)->next = (1:177), but (1:177)->prev = (1:409).Connection Broken |
|
|
Unes
Starting Member
8 Posts |
Posted - 2006-05-31 : 13:30:15
|
The following is the Error log2006-05-31 09:56:01.59 spid54 Expected to find buffer in keep slot for table 'syscomments'..2006-05-31 09:56:01.59 spid54 Error: 655, Severity: 20, State: 22006-05-31 09:56:01.59 spid54 Table error: Database ID 7, object ID 6, index ID 0. Chain linkage mismatch. (12006-05-31 09:56:01.59 spid54 Error: 8908, Severity: 22, State: 62006-05-31 10:19:24.90 spid52 Expected to find buffer in keep slot for table 'syscomments'..2006-05-31 10:19:24.90 spid52 Error: 655, Severity: 20, State: 22006-05-31 10:19:24.90 spid52 Table error: Database ID 7, object ID 6, index ID 0. Chain linkage mismatch. (12006-05-31 10:19:24.90 spid52 Error: 8908, Severity: 22, State: 62006-05-31 10:21:57.08 spid52 Expected to find buffer in keep slot for table 'syscomments'..2006-05-31 10:21:57.08 spid52 Error: 655, Severity: 20, State: 22006-05-31 10:21:57.08 spid52 Table error: Database ID 7, object ID 6, index ID 0. Chain linkage mismatch. (12006-05-31 10:21:57.08 spid52 Error: 8908, Severity: 22, State: 6 |
|
|
Unes
Starting Member
8 Posts |
Posted - 2006-05-31 : 14:29:27
|
The result for the following command was: "The command(s) completed successfully."DBCC CHECKTABLE (sysobjects) WITH NO_INFOMSGSgoDBCC CHECKTABLE (sysindexes) WITH NO_INFOMSGSgoDBCC CHECKTABLE (syscolumns) WITH NO_INFOMSGSgoDBCC CHECKTABLE (systypes) WITH NO_INFOMSGSgo |
|
|
paulrandal
Yak with Vast SQL Skills
899 Posts |
Posted - 2006-05-31 : 15:10:46
|
quote: Originally posted by Unes Article http://doc.ddart.net/mssql/sql2000/html/trblsql/tr_reslsyserr_2_2coj.htmexplains more thoroughly the causes of the error. Based on this article the problem lays on the table which the proc is working on. But amazingly my table is fine! Select * from Dealers where Dealer = 'Aeffi'present the data no problem, But pr_Dealers @ProcCode = 'Find', @Dealer = 'Aeffi'which suppose to present the same data gives the following error:Server: Msg 8908, Level 22, State 6, Procedure pr_Dealers, Line 1Table error: Database ID 7, object ID 6, index ID 0. Chain linkage mismatch. (1:334)->next = (1:177), but (1:177)->prev = (1:409).Connection Broken
You're misinterpreting that article (which I wrote) - and you're better to pull that stuff from MSDN directly rather than from a 3rd party site that's copied it so that you get the latest updates.The 8908 error explains which table the problem is in - in this case its in object ID 6, which is syscomments. Syscomments holds all the text of SPs, and so when you invoke your SP its trying to look through syscomments to find the text of your SP and hits the 8908 error.Do you have a backup that you can restore from?When you move the DB file between the two machines, exactly how do you do that?Paul RandalLead Program Manager, Microsoft SQL Server Storage Engine + SQL Express(Legalese: This posting is provided "AS IS" with no warranties, and confers no rights.) |
|
|
Unes
Starting Member
8 Posts |
Posted - 2006-05-31 : 18:25:57
|
I did read the following article too:http://support.microsoft.com/kb/811205This is a small database, so occasionally I saved copies of the ItemsSoftware_Data.MDFItemsSoftware_Log.LDFfiles in some other folder. But I never created the BackUp through the SQL Server. I can attach these other db files to recover my sp scripts.I used a cross over cable to transfer my files between the two computers.Thank you Paul Randal for your efforts,Unes |
|
|
paulrandal
Yak with Vast SQL Skills
899 Posts |
Posted - 2006-06-01 : 00:10:25
|
As I mentioned above, http://support.microsoft.com/kb/811205 isn't relevant to your issue, even though the error number is the same.Given that you don't have a backup, you'll need to run repair on the syscomments table or extract the data out into a clean database - your choice depending on how easy it is to extract the data.Paul RandalLead Program Manager, Microsoft SQL Server Storage Engine + SQL Express(Legalese: This posting is provided "AS IS" with no warranties, and confers no rights.) |
|
|
cmdr_skywalker
Posting Yak Master
159 Posts |
Posted - 2006-06-01 : 03:56:18
|
Try this and see if it will give some insight. EXEC sp_change_users_login 'Report'May the Almighty God bless us all! |
|
|
Unes
Starting Member
8 Posts |
Posted - 2006-06-01 : 13:34:31
|
Hi Paul Randal,How can I run repair on the syscomments table?Is there a way that I can look at or alter the content of syscomments table?Thanks for your advice.Hi cmdr_skywalker,The following is the output of EXEC sp_change_users_login 'Report'I have no clue how I should use the information.UserName UserSID ---------------------- -------------------------------------dbo 0xDDB1E79F428E0D4EB54A3216710C6564ItemsSoftwareApp 0x13AA5E0BC5EF0649AE07079475A8BB96Main Street 0xC185A01D012BB84CB1C317D3BBFCAD3BUnes 0x18C04BF498E0E34A9CAB26F2A129485E |
|
|
Unes
Starting Member
8 Posts |
Posted - 2006-06-01 : 13:47:23
|
Hi Paul Randal,If I could delete those procs from syscomments table that would be fine.Because the way it is, I am stuck with those corrupted procs.By the way, what could be the cause of the problem?Thanks for your advice. |
|
|
paulrandal
Yak with Vast SQL Skills
899 Posts |
Posted - 2006-06-01 : 15:49:14
|
We're not making much timely progress here - I could walk you through what to do but going back and forth like this is going to take days.I suggest you call Product Support to help you run repair and recreate your SP.ThanksPaul RandalLead Program Manager, Microsoft SQL Server Storage Engine + SQL Express(Legalese: This posting is provided "AS IS" with no warranties, and confers no rights.) |
|
|
|
|
|
|
|