-- 向TEST_TABLE中插入数据指定日期和之前n天的数据
IF OBJECT_ID ('dbo.PROC_TEST_TABLE') IS NOT NULL
DROP PROCEDURE dbo.PROC_TEST_TABLE
GO
CREATE PROCEDURE PROC_TEST_TABLE -- 创建存储过程
(
@set_time SMALLDATETIME =NULL, -- 设置指定日期参数
@n INT=0 -- 设置间隔
)
AS
DECLARE
@v_sql VARCHAR(4000), --执行的SQL语句
@v_time SMALLDATETIME -- 临时变量
IF @set_time!=NULL
SET @v_time=@set_time -- 设置临时变量
END
CREATE TABLE TEST_TABLE( -- 创建表格
DTSMALLDATETIME NOT NULL,
VALUE INT
)
CREATE UNIQUE NONCLUSTERED INDEX UQE_IEP_FILL_TEMP -- 创建索引
ON dbo.#IEP_FILL_TEMP (OBJ_ID,SELF_ID,DATA_DT)
WITH IGNORE_DUP_KEY
WHILE @v_time!=dateadd(day,-n,@v_time) -- 停止条件
BEGIN
SET @v_time=dateadd(day,-1,@v_time) -- 每次递减一天
SET @v_sql='INSERT INTO TEST_TABLE(DT,VALUE)
VALUES('''+@v_time_temp+''',convert(INT ,'''+@v_time +''')) ' --使用convert转换数据类型
EXEC (@v_sql) -- 执行sql
END
PRINT 'success with last time: %1!',@v_time -- 打印信息
GO
Sysbase数据库存储过程
近日不得不学习Sybase数据库的相关内容,以前只是接触过mysql的基本操作,基本的增删改查之类的。没有接触过Sybase,不过Sybase的操作和mysql很相似。所以写起来也不甚麻烦,特写篇博客,以后再用到可以方便查看。