首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

插入sql语句

2012-09-16 
求一个插入sql语句。我新建了一个作业,分了两个步骤。第一步:判断以当前日期加前缀为表名的表是否存在(如tb_

求一个插入sql语句。
我新建了一个作业,分了两个步骤。
第一步:判断以当前日期加前缀为表名的表是否存在(如tb_20120810),如果不存在就创建这个表。
第二部:判断以当前日期加前缀为表名的表是否存在(如tb_20120810),如果存在就执行插入语句。

tb_20120810表字段为id name sex age,id是自动编号。插入的值是‘小明’,‘男’,12。

循环执行作业,一直插入这一条值。

本想写成一步但是不会写,目前第一步测试成功,第二步不会写总报错。

求高人。

[解决办法]
---第一步都写了,第二步还写不出来?

DECLARE
cnt NUMBER;
BEGIN 
 FOR LOOP--循环
SELECT COUNT(*) INTO cnt FROM all_tables t WHERE upper(t.table_name)=upper('tb_20120810');
IF cnt=0 THEN --不存在
--创建表
 EXECUTE IMMEDIATE 'create tbale tb_20120810(id number,name varchar2(20),sex varchar2(10),age number)';
 ELSIF
 INSERT INTO tb_20120810 VALUES('')-----插入数据
END IF;
END LOOP---结束循环
END;

[解决办法]
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tb_20120810]') AND type in (N'U'))
insert into ...
GO
[解决办法]

SQL code
declare @i varchar(15)DECLARE @sql VARCHAR(8000)select @i = 'tb_'+convert(varchar(8),getdate(),112)SELECT @sql = 'if not exists(select 1 from sys.tables where name ='''+@i+''')'    +CHAR(10)+'create table '+ @i+'(id int identity(1,1),name varchar(10),sex varchar(2),age tinyint)'    +CHAR(10)+    ' else '    +CHAR(10)+'insert into '+@i+'(name,sex,age)'+CHAR(10)+'select ''小明'',''男'',12'    EXEC (@sql) 

热点排行