本文共 3082 字,大约阅读时间需要 10 分钟。
这种写法是最原始、落后的。也是最容易产生错误的写法:
首先有在代码里,它没有指定在那个数据库执行,有时候人很粗心,打开文件就执行了,有可能把表就建到master或其他数据库去了。
其次在批处理建表的时候,如果这个表在该数据库已经存在了。则会影响执行。所以我们可以改善一下它的写法。
这这种写法也有个问题,就是DROP TABLE UserContactPerson; 这个地方,一般来说不建议删除表后,然后新建,除非是数据库创建时,新建表。原因不用多说,想必大家都很明白。一般应该给予提示,让执行这段脚本的人去选择处理,类似于下面的写法
1: IF NOT EXISTS(SELECT 1 FROM SYSOBJECTS WHERE NAME = 'Users' AND XTYPE ='U') 2: 3: CREATE TABLE [Users] 4: ( 5: [UserID] INT IDENTITY(1,1) ,--ID主键 6: [UserName] NCHAR(15) ,--用户名 7: [Password] CHAR(15) ,--密码 8: [NickName] NCHAR(15) ,--别名、网名 9: [Name] NCHAR(8) ,--真实姓名 10: [SEX] BIT ,--性别 11: [Age] SMALLINT ,--年龄 12: [Birthday] SMALLDATETIME ,--生日 13: [Moblie] CHAR(11) ,--手机 14: [OfficePhone] CHAR(12) ,--办公室座机 15: [HomePhone] CHAR(12) ,--家里座机 16: [Email] NCHAR(30) ,--电子邮件 17: [QQ] CHAR(10) ,--QQ 18: [MSN] CHAR(20) ,--MSN 19: [Skype] CHAR(25) ,--Skype 20: [PersonWebsit] CHAR(20) ,--个人主页 21: [Schoole] NCHAR(20) ,--毕业学校 22: [Place] NCHAR(15) ,--籍贯 23: [Hometown] NCHAR(25) ,--家乡 24: [CreateDate] SMALLDATETIME ,--用户创建时间 25: [UpdateDate] SMALLDATETIME ,--用户资料更新时间 26: [LastLogin] SMALLDATETIME ,--用户最后登录时间 27: [IP] CHAR(15) ,--用户登录IP 28: [Lock] BIT ,--用户是否被锁定 29: [IsAdmin] BIT ,--是否是管理员 30: [Session] CHAR(20) ,--保存登录Seesion 31: CONSTRAINT PK_Users_UserID PRIMARY KEY(UserID) 32: ) 33: ELSE 34: --DROP TABLE Users 35: PRINT 'this table have been existed! you should check and take action' 36: GO
下面看看来判断该表是否存在的几种方法
转载地址:http://qpvia.baihongyu.com/