求一个插入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)