F fscdc1 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-24 #1 delphi中使用sql2000数据库,如何增加一个表和在现有表中增加字段,要先判断有没有这个表,没有就增加,有没有这个字段,没有就增加,请给出代码
C creation-zy Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-24 #2 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[MyTable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)<br>begin<br> alter table [dbo].[MyTable] add "Name" [varchar] (30) NULL<br>end<br>else<br>begin<br> CREATE TABLE [dbo].[MyTable] (<br> [ID] [int] NOT NULL,<br> [Name] [varchar] (30) NULL<br>  <br>end
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[MyTable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)<br>begin<br> alter table [dbo].[MyTable] add "Name" [varchar] (30) NULL<br>end<br>else<br>begin<br> CREATE TABLE [dbo].[MyTable] (<br> [ID] [int] NOT NULL,<br> [Name] [varchar] (30) NULL<br>  <br>end
F fscdc1 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-24 #6 如果新建的数据库是名是syjxc,表名是show1,域名是n_code,n_code varchar 3,不用except能给出具体的例子把
L lisongmagic Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-24 #7 creation-zy大侠已写,<br>我再补充点:<br>也可以这么写<br>if exists(select * from dbo.sysobjects where name = 'TableName' and type = 'u')<br>如果这个表实临时表的话,那就变了:<br>create table #abc<br>(id int<br>) <br>select * from tempdb.dbo.sysobjects <br> where id = object_id('tempdb.dbo.#abc')
creation-zy大侠已写,<br>我再补充点:<br>也可以这么写<br>if exists(select * from dbo.sysobjects where name = 'TableName' and type = 'u')<br>如果这个表实临时表的话,那就变了:<br>create table #abc<br>(id int<br>) <br>select * from tempdb.dbo.sysobjects <br> where id = object_id('tempdb.dbo.#abc')
F fscdc1 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-24 #8 如果新建的数据库是名是syjxc,表名是show1,域名是n_code,n_code varchar 3,不用except能给出具体的例子把
F fscdc1 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-24 #9 select * from dbo.sysobjects where id = object_id(N'[dbo].[MyTable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1中,sysobjects是什么,id = object_id是什么,<br>OBJECTPROPERTY(id, N'IsUserTable')是什么
select * from dbo.sysobjects where id = object_id(N'[dbo].[MyTable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1中,sysobjects是什么,id = object_id是什么,<br>OBJECTPROPERTY(id, N'IsUserTable')是什么
L lisongmagic Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-24 #10 .........<br>sysobjects是系统表,object_id,OBJECTPROPERTY都是sql server的系统函数啊,<br>就像select count(*)整的count一样
.........<br>sysobjects是系统表,object_id,OBJECTPROPERTY都是sql server的系统函数啊,<br>就像select count(*)整的count一样
F fscdc1 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-25 #11 如果表已经存在,我想增加字段,请给出代码,这种情况最常见,还有数据库升级一般是怎么做的
L lisongmagic Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-25 #12 alter table MyTable add "Name" varchar (30) NULL<br>这不就是增加字段吗。
alter table MyTable add "Name" varchar (30) NULL<br>这不就是增加字段吗。
S songrun Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-25 #13 delphi中的相应操作就是在adoquery中执行上述增加表或字段的sql代码
F fscdc1 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-25 #14 alter table MyTable add "Name" varchar (30) NULL<br>这不就是增加字段吗。如果该字段已经存在的话,会出错,<br>我想先判断是否有这个字段,没有就增加,请给出代码
alter table MyTable add "Name" varchar (30) NULL<br>这不就是增加字段吗。如果该字段已经存在的话,会出错,<br>我想先判断是否有这个字段,没有就增加,请给出代码
C creation-zy Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-25 #15 老大,有问题能不能一气儿说完啊?<br><br>/* 检查用户表 MyTable 是否存在 */<br>if exists (select * from dbo.sysobjects where id = object_id(N'MyTable')<br> and OBJECTPROPERTY(id, N'IsUserTable') = 1)<br>begin<br> /* 检查MyTable表中是否已有"Name"字段 */<br> IF Not Exists(<br> SELECT * FROM syscolumns WHERE (id = OBJECT_ID(N'MyTable'))<br> AND (OBJECTPROPERTY(id, N'IsUserTable') = 1) AND (name = 'Name') <br> BEGIN<br> /* 为MyTable表增加"Name"字段——类型为varchar,长度为30,可为空 */<br> alter table MyTable add "Name" [varchar] (30) NULL<br> END<br>end<br>else<br>begin<br> /* 创建具有ID以及Name字段的MyTable表 */<br> CREATE TABLE [dbo].[MyTable] (<br> [ID] [int] NOT NULL,<br> [Name] [varchar] (30) NULL<br>  <br>end
老大,有问题能不能一气儿说完啊?<br><br>/* 检查用户表 MyTable 是否存在 */<br>if exists (select * from dbo.sysobjects where id = object_id(N'MyTable')<br> and OBJECTPROPERTY(id, N'IsUserTable') = 1)<br>begin<br> /* 检查MyTable表中是否已有"Name"字段 */<br> IF Not Exists(<br> SELECT * FROM syscolumns WHERE (id = OBJECT_ID(N'MyTable'))<br> AND (OBJECTPROPERTY(id, N'IsUserTable') = 1) AND (name = 'Name') <br> BEGIN<br> /* 为MyTable表增加"Name"字段——类型为varchar,长度为30,可为空 */<br> alter table MyTable add "Name" [varchar] (30) NULL<br> END<br>end<br>else<br>begin<br> /* 创建具有ID以及Name字段的MyTable表 */<br> CREATE TABLE [dbo].[MyTable] (<br> [ID] [int] NOT NULL,<br> [Name] [varchar] (30) NULL<br>  <br>end