SQL求助:想创建一个表,但在创建前先判断是否存在。如存在就删除它,不存在就创建。
1、创建对象时,如果没有指定Schema,就会挂在默认的Schema dbo下面。
2、User下面的有一个叫dbo的User,Schema下面有一个叫dbo的Schema,就像上面所述,前者是一个User,是用来管理授权的,后者是一个Schema,是用来分组数据库对象的,所以对象名称前面的Schema,如:dbo.table1,其中的dbo指的是Schema。
3、右键点击Schemas节点,点击菜单中的"New Schema",在创建Schema对话框中输入Schema的名称,如:demo,Schema Owner可以不指定,默认为dbo这个User,点确定创建Schema。
4、在创建表时,在表前面加上Schema名称,就可以创建,具体的SQL如下:create table demo.table1(f1 varchar(30))。
5、刷新左侧对象浏览器,可以看到新建的table1的Schema是demo,查看table1的属性,也可以看到Schema是demo。
6、使用非dbo Schema的表时,需要在表前面加上Schema名称,不然可能会出错。
if exists (select * from sysobjects where id = object_id(N'[AAA]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [AAA] ---如果已存在AAA表,则先删除
---创建AAA表
CREATE TABLE [AAA](
[id] uniqueidentifier NOT NULL ,
[code] nvarchar(30) ,
[name] nvarchar(200) )
if exists (select * from sysobjects where name='ReturnVisit')
--删除表
drop table ReturnVisit
--创建表
create table ReturnVisit
(
RID uniqueidentifier not null,--主键
)
DROP TABLE test_table
go
CREATE TABLE test_table(
Test_ID int IDENTITY(1,1) PRIMARY KEY NOT NULL ,
Test_Key varchar(10) NOT NULL ,
Test_Value varchar(20) NOT NULL ,
Test_Type int NOT NULL ,
Test_BelongTo int,
Test_Grade int DEFAULT 1,
Test_Remark varchar(50),
Test_Visible bit DEFAULT 1
);
go
参考资料: http://hi.baidu.com/wangzhiqing999/blog/item/b13f231de602195642a9ad2d.html
DROP TABLE tableName