FIX: CREATE TABLE in Stored Procedure May Fail With Error 1750 (150775)



The information in this article applies to:

  • Microsoft SQL Server 6.5

This article was previously published under Q150775
BUG#: 14884 (6.50)

SYMPTOMS

EXECuting a stored procedure that creates a temp or permanent table with defaults may fail with the error:
[INTERNAL ERROR] unable to locate original param in voidptr list.
Msg 1750, Level 16, State 0
Unable to create constraint. See previous errors.

CAUSE

If there is some activity in the stored procedure before the CREATE TABLE, this error can occur. In the simplest case, executing the following stored procedure will fail:
create proc sp_test1 as
begin
IF ( @@error <> 0 )
BEGIN
   GOTO cleanup
END
CREATE TABLE   #t1 (c1  int NOT NULL DEFAULT -1)
cleanup:
end
go
declare @rc int
EXEC @rc = sp_test1
SELECT @rc
go
				

WORKAROUND

Use some other method than a CONSTRAINT, such as ISNULL, to get the default values you want into the table.

STATUS

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

Modification Type:MajorLast Reviewed:10/3/2003
Keywords:kbBug kbfix kbProgramming KB150775