Microsoft KB Archive/160541

= FIX: Cross-Database INSERTS May Fail with Error 229 =

Article ID: 160541

Article Last Modified on 10/3/2003

-

APPLIES TO


 * Microsoft SQL Server 6.5 Standard Edition

-



This article was previously published under Q160541



BUG #: 16276



SYMPTOMS
A stored procedure run by a user who has full execute permissions and who is a valid user in two databases may fail with the following error on a cross-database INSERT:

229 %s permission denied on object %.*s, database %.*s, owner %.*s

This problem occurs even if the owner of the underlying table is also the owner of the stored procedure. This problem occurs if the stored procedure needs to be re-resolved, such as in the following cases: loading from backup, dropping and recreating an underlying table, or shutting down and restarting SQL Server (if the stored procedure references a temporary table). If the stored procedure is dropped and re-created, it works properly until one of the re-resolutions mentioned above occurs.



WORKAROUND
To work around this problem, do either of the following:


 * Take the temporary table creation out of the stored procedure; create the temporary table before calling the stored procedure.

-or-
 * Drop and re-create the affected stored procedure after a re-resolution event has occurred.



STATUS
Microsoft has confirmed this to be a problem in SQL Server version version 6.5. This problem has been corrected in U.S. Service Pack 2 for Microsoft SQL Server version 6.5. For more information, contact your primary support provider.

Keywords: kbbug kbfix kbusage KB160541

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.