利用自定义数据类型创建临时表问题

同一个dbuser 例如,L001 具有db_owner和public权限
L001创建了一个XName varchar(20)的自定义数据类型
在存储过程中声明XName类型变量并赋值打印输出,没有问题。
在存储过程中利用这个XName创建一个临时表提示找不到XName数据类型???
何故?紧急紧急!!!!
---------------------------------------------------------------

你可能不是用全局变量!
---------------------------------------------------------------

原因:你的临时表是建在库TEMPDB的,而你的自定义数据类型没有定义在TEMPDB。

建议在存储过程临时表里用基础类型varchar(20)。

---------------------------------------------------------------

创建一个在 Microsoft SQL Server 启动时自动运行的存储过程,在此存储过程中创建自定义的数据类型。
---------------------------------------------------------------

--在MS SQL Server 2000 中测试通过

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[usp_autorun]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[usp_autorun]
GO

SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

CREATE PROCEDURE dbo.usp_autorun AS
exec('use tempdb EXEC sp_addtype N''dates'', N''char (10)'', N''not null''')
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

exec sp_procoption N'usp_autorun', N'startup', N'true'
GO

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus