We have a SQL 2000 server running Enterprise Edition. We also have a separate machine running SQL 2000, Standard edition. We then detached the database from the Enterprise server, copied the MDF and LDF files to the Standard server and reattached. Currently, a program running on the Standard Edition server is returning an error message when trying to access "systables". The questions are as follows:
1) is this error a result of the copy process?
2) is this a recoverable error, and if so, how?
3) are there any other problems and side-effects of which we need to be aware?I have moved databases between Standard and Enterprise several times before, and not had this issue, so it can be done. Without any other information, I can only guess as to why this is happening, but here is my guess:
The user-account being used by the program that is throwing the error probably has a different default database setting than on the Enterprise version. In other words, UserX on the Enterprise server probably has a default database pointing to the application database, and on the Standard edition has a default database of something like Master.
This would cause a problem in implicit database references. If the program issues a command like SELECT * FROM systables, thinking it is going to automatically be pointing to the application database, but is actually pointing to something else, it will not be able to find systables. The proper syntax for the query would explicitly state the table name SELECT * FROM [dbname].dbo.systables, in which case the default database setting of the user would not affect the code.|||The default database for the user is the same on both servers. Any other ideas? Is there any other information I could give that might be of assistance?
Originally posted by bpdWork
I have moved databases between Standard and Enterprise several times before, and not had this issue, so it can be done. Without any other information, I can only guess as to why this is happening, but here is my guess:
The user-account being used by the program that is throwing the error probably has a different default database setting than on the Enterprise version. In other words, UserX on the Enterprise server probably has a default database pointing to the application database, and on the Standard edition has a default database of something like Master.
This would cause a problem in implicit database references. If the program issues a command like SELECT * FROM systables, thinking it is going to automatically be pointing to the application database, but is actually pointing to something else, it will not be able to find systables. The proper syntax for the query would explicitly state the table name SELECT * FROM [dbname].dbo.systables, in which case the default database setting of the user would not affect the code.|||1) Are you sure the database you moved has the table systables, and that it is not in a different database?
2) Does the user account being used by the application have SELECT (etc) permissions for the table?
The exact error message might be helpful.|||check the service pack level|||We've found the issue. Basically, an error was made during the installation of the software. To everyone, thanks for the help.
No comments:
Post a Comment