--库是否存在,如果不存在则添加,如果存在则先删除,再添加;feiyan(数据库名称)
if not exists (select * from master..sysdatabases where name=N'feiyan')
else
-- 判断要创建的表是否存在,如果不存在则添加,如果存在则先删除,再添加;feiyan(表名)
if object_id (N'dbo.feiyan', N'table') is null
--if (select object_id( 'feiyan ')) is null (对表来说这样也可以)
else
--判断一个表的某个列是否存在,如果不存在则添加,如果存在则先删除,再添加;feiyan(表名),xm(列名)
if
else
-- 判断要创建的存储过程名是否存在,如果不存在则添加,如果存在则先删除,再添加;MyProcedure(存储过程名)
if object_id (N'dbo.MyProcedure', N'procedure') is null
Else
-- 判断要创建的视图名是否存在,如果不存在则添加,如果存在则先删除,再添加;MyView(视图名),feiyan(表名)
if object_id (N'dbo.MyView', N'view') is null
Else
-- 判断要创建的函数名是否存在,如果不存在则添加,如果存在则先删除,再添加;myfunction(函数名)
if object_id (N'dbo.myfunction', N'FN') is null
Else
注:
object_id:返回架构范围内对象的数据库对象标识号。 OBJECT_ID (N'dbo.AWBuildVersion', N'U')
附上自己写的一个,函数是截取字符串中的数字
if object_id (N'dbo.F_Get_No', N'FN') is null
Begin
declare @sql varchar(8000)
set @sql='CREATE function [dbo].[F_Get_No]
(
@No varchar(100)
)
RETURNS FLOAT
AS
BEGIN
WHILE PATINDEX(''%[^0-9.]%'',@No)>0
BEGIN
SET @No=STUFF(@No,PATINDEX(''%[^0-9.]%'',@No),1,'''')
END
RETURN CONVERT(FLOAT,@No)
END'
execute(@sql)
End
Else
Begin
drop function F_Get_No
set @sql='CREATE function [dbo].[F_Get_No]
(
@No varchar(100)
)
RETURNS FLOAT
AS
BEGIN
WHILE PATINDEX(''%[^0-9.]%'',@No)>0
BEGIN
SET @No=STUFF(@No,PATINDEX(''%[^0-9.]%'',@No),1,'''')
END
RETURN CONVERT(FLOAT,@No)
END'
execute(@sql)
End
由于@sql里面的内容会出现',所以需要用到转义,2个'就表示'的转义