Sysbase数据库存储过程

时间:2021-12-30 14:06:23
近日不得不学习Sybase数据库的相关内容,以前只是接触过mysql的基本操作,基本的增删改查之类的。没有接触过Sybase,不过Sybase的操作和mysql很相似。所以写起来也不甚麻烦,特写篇博客,以后再用到可以方便查看。
-- 向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