--在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] GOSET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF GOCREATE 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 GOexec sp_procoption N'usp_autorun', N'startup', N'true' GO
Thanks
为了统一某些关键且常用的字段,例如对象ID。才使用了自定义的数据类型。如果在创建临时表的时候不使用自定义数据类型就违背了统一的意图。
在TempDB中创建一套自定义数据类型?
2000没有试过加自定义数据类型,你自己试试会不会丢失!
这个存储过程怎么创建????
Thanks a lot.
我企图将应用自定义类型的临时表加锁,但是失败了。
在MODEL 表中建类型!
关SQLSERVER 重开SQLSERVER 可以!!!!
foolishchao(亚超),怎么创建sql server启动时自动运行的存储过程?
学了一招
SQL Server 启动时可以自动执行一个或多个存储过程。这些存储过程必须由系统管理员创建,并在 sysadmin 固定服务器角色下作为后台过程执行。这些过程不能有任何输入参数。 对启动过程的数目没有限制,但是要注意,每个启动过程在执行时都会占用一个连接。如果必须在启动时执行多个过程,但不需要并行执行,则可以指定一个过程作为启动过程,让该过程调用其它过程。这样就只占用一个连接。在启动时恢复了最后一个数据库后,即开始执行存储过程。若要跳过这些存储过程的执行,请将启动参数指定为跟踪标记 4022。如果以最低配置启动 SQL Server(使用 -f 标记),则启动存储过程也不会执行。有关更多信息,请参见跟踪标记。 若要创建启动存储过程,必须作为 sysadmin 固定服务器角色的成员登录,并在 master 数据库中创建存储过程。使用 sp_procoption 可以: 将现有存储过程指定为启动过程。停止在 SQL Server 启动时执行过程。查看 SQL Server 启动时执行的所有过程的列表。
Yang_(扬帆破浪) ,你真行,我一个月不在,你不但有了星级,而且弄了这么多的信誉分,是不是自己给自己放水啊!!
:)
但是如果不用use tempdb,那这些数据类型就建立到master库中了!!!
怎么办?
那怎么从master库中的存储过程来增加tempdb库的自定义数据类型?
EXEC ('
USE TEMPDB
....
')
难道是exec ('use tempdb
exec ('sp_addtype .....')
')
exec中嵌套的单引号记得是'''',4个?
drop procedure [dbo].[usp_autorun]
GOSET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GOCREATE 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
GOexec sp_procoption N'usp_autorun', N'startup', N'true'
GO