2、 /* 寻找以操作员工号命名的全局临时表 * 如无则将out参数置为0并创建该表,如有则将out参数置为1 * 在connection断开连接后,全局临时表会被SQL Server自动回收 * 如发生断电之类的意外,全局临时表虽然还存在于tempdb中,但是已经失去活性 * 用object_id函数去判断时会认为其不存在. */ @v_userid varchar(6), -- 操作员工号 @i_out int out -- 输出参数 0:没有登录 1:已经登录 as declare @v_sq
3、l varchar(100) if object_id('tempdb.dbo.##'+@v_userid) is null begin set @v_sql = 'create table ##'+@v_userid+'(userid varchar(6))' exec (@v_sql) set @i_out = 0 end else set @i_out = 1 在这个过程中,我们看到如果以用户工号命名的全局临时表不存在时过程会去创建一张并把out参数置为0,如果已经存在则将out参数置为1。
7、name='DatabaseTriggerLog'。 返回类型为int,表示该对象在系统中的编号,如果找不到或发生错误一律返回NULL。 例子:A.返回数据库AdventureWorks中Production.WorkOrder表的标识号 USE master;GOSELECT OBJECT_ID(N'AdventureWorks.Production.WorkOrder') AS 'Object ID';GO B.存在性检查下列会确认资料表有物件的标识码,藉此检查指定的资料表是否存在。如果存在就删除。USE AdventureWorks;GOIF OB
8、JECT_ID (N'dbo.AWBuildVersion', N'U') IS NOT NULLDROP TABLE dbo.AWBuildVersion;GO此方法一般用来判断数据库中本来用没有此对象(procedures,views,functions等).注意:当该参数对系统函数可选时,则系统采用当前数据库、主机、服务器用户或数据库用户。内置函数后面必须跟圆括号。如果指定一个临时表名,除非当前数据库为tempdb(废话),否则必须在临时表名前面加上数据库名,例如:SELECTOBJECT_ID('tempdb..#mytemptable')