sqlserveR 过程2
我想写一个过程,判断一个表是否存在!
如
exists(select * from sysobjects where id = object_id(N'[dbo].t_cif_customer') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
但我的表名是参数,请问怎么写
create procedure aa
@tablename,@result
as
result=0
if exists(select * from sysobjects where id = object_id(N'[dbo].t_cif_customer') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
@result=1
问题点数:40、回复次数:7Top
1 楼wqb(啊喂)回复于 2002-01-07 16:07:49 得分 0
如果是sqlserver,你可以在系统表sysobjects中查找表名,例如:
select * from sysobjects where name='leibiebak',这就是看leibiebak表是否存在。Top
2 楼wqb(啊喂)回复于 2002-01-07 16:08:44 得分 0
sorry,看错了,抱歉。Top
3 楼tommychim(阿布洛迪)回复于 2002-01-07 16:23:11 得分 40
CREATE PROCEDURE dbo.a @tablename varchar(100),@pt int output AS
declare @sql nvarchar(1000)
select @sql='select @result=(select count(name) as a from sysobjects where name='''+@tablename+''')'
print @sql
Exec sp_executesql @SQL,N'@result int output',@pt output
print @pt
GO
Top
4 楼gmc007(江西的佬表)回复于 2002-01-07 16:43:57 得分 0
drop proc aa
go
create procedure aa
@tablename varchar(100),
@result bit output
as
declare @sql varchar(1000)
set @result=0
if exists(select id from sysobjects where name='' + @tablename + '' and type='u')
set @result=1Top
5 楼gmc007(江西的佬表)回复于 2002-01-07 16:45:07 得分 0
来迟了,,,,Top
6 楼yinzhen(銀圳)回复于 2002-01-07 16:46:23 得分 0
alter procedure aa
(@tablename varchar(30),@result int out)
as
Begin
set @result=0
if exists(select * from sysobjects where id = object_id(@tablename) and OBJECTPROPERTY(id, N'IsUserTable') = 1)
set @result=1
EndTop
7 楼yinzhen(銀圳)回复于 2002-01-07 16:47:32 得分 0
declare @Result int
exec aa 'tblName',@Result out
print 'Result'+convert(varchar(5),@Result)
Top




