在分类表中插入一条新的记录,主键是取到当前的最大值+1
USE [TKInfDB]
GO
/****** Object: StoredProcedure [MSG].[P_CreateNewClass] Script Date: 05/22/2012 12:00:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [MSG].[P_CreateNewClass]
@tbName nvarchar(50),
@id NVARCHAR(50),
@desc nvarchar(255),
@desc_value nvarchar(255),
@state_value as int=0,
@BTime_value as datetime='1970-01-01',
@ETime_value as datetime='2038-01-01'
as
BEGIN
DECLARE @sql nvarchar(max);
DECLARE @sql2 NVARCHAR(max);
DECLARE @numrows AS INT;
DECLARE @rows AS INT;
SELECT @sql=''
--SELECT @sql='declare @maxid int ;'
SELECT @sql=@sql+'select @maxid=max('+@id+') from '+@tbName;
SELECT @sql=@sql+' select @maxid '
EXEC sys.sp_executesql
@sql,
N'@maxid as int output',
@numrows OUTPUT;
SET @rows=(@numrows+1);
--插入一条新的记录
SET @sql2='insert into '+@tbName+'('+@id+','+@desc+',state,btime,etime) values(@sp_idvalue,
@sp_descvalue,@sp_statevalue,@sp_btimevalue,@sp_etimevalue)';
EXEC sys.sp_executesql
@sql2,
-----参数声明部分
N'@sp_idvalue int,@sp_descvalue varchar(255),@sp_statevalue int,@sp_btimevalue datetime,@sp_etimevalue datetime',
----参数赋值部分
@rows,
@desc_value,
@state_value,
@BTime_value,
@ETime_value
END
分享到:
相关推荐
在Kettle的工作流中,你可以通过字段映射或者变量将这个值传递给SQL查询,使其在运行时动态替换。 另一种动态SQL的方法是使用命名参数。这种方式更易读且可维护,因为它允许你在SQL语句中使用有意义的标识符来代替...
标题与描述中的“SQL绑定变量”这一知识点,主要聚焦于SQL语句中如何使用变量,尤其是在存储过程或函数中动态构建SQL语句时的关键技术。绑定变量允许在SQL语句中使用程序变量作为参数,这不仅提高了代码的可读性和...
这里定义了一个变量`id`并赋值为1,然后通过`USING`子句将该变量传递给动态执行的SQL语句中的占位符`(:1)`。需要注意的是,当使用`USING`子句时,传递的参数数量必须与SQL语句中的占位符数量一致。 ### 查询数据:...
在SQL Server中,动态SQL是执行SQL语句的一种方式,特别是在需要在运行时...通过正确声明和传递变量,我们可以安全、有效地执行这些动态SQL语句。在实际应用中,要确保遵循最佳实践,以避免潜在的安全风险和性能问题。
动态SQL是指在程序运行过程中,根据不同的条件构造出不同的SQL语句,并将其作为一个字符串传递给数据库进行解析和执行。这种方式使得SQL语句可以在运行时动态生成,增加了代码的灵活性和可扩展性。 #### 二、动态...
你可以在存储过程中接收一个包含多个值的参数,如一个字符串,然后动态拼接`DELETE`或`SELECT`等SQL语句。例如: ```sql CREATE PROCEDURE usp/DeleteByIds (@idList VARCHAR(MAX)) AS BEGIN SET NOCOUNT ON; ...
本文将详细解析一个动态SQL建表的例子,并从中提取出重要的知识点。 #### 一、动态SQL概述 动态SQL指的是在运行时构建SQL语句的过程。它允许开发者根据不同的条件生成不同的SQL语句,从而实现更灵活的数据处理逻辑...
变量是Kettle中存储动态数据的一种方式,它们可以在Job的各个步骤间传递信息,也可以根据需要被修改和重用。这里的循环机制是基于这些变量来实现的。 首先,这个例子的起点是一个文本文件,其中包含需要处理的表名...
然后使用 `EXECUTE IMMEDIATE` 语句来执行这个动态构建的SQL语句,并通过 `USING IN` 关键字传递实际的值给绑定变量 `:bind1`。 值得注意的是,在编写动态SQL时,虽然能够提供灵活性和动态性,但也带来了挑战。动态...
在这个例子中,我们使用了 `USING` 子句来传递动态值到 SQL 语句中。 3. **使用 INTO 子句** ```plsql DECLARE l_cnt NUMBER; BEGIN EXECUTE IMMEDIATE 'SELECT COUNT(1) FROM emp' INTO l_cnt; DBMS_...
本文将分析和研究四种类型的动态SQL语句,并结合实际例子探讨其在PB中的应用方法和技巧。 首先,动态SQL语句根据参数和结果集的不同,可以分为四种类型: 1. 无输入参数,也无结果集; 2. 有输入参数,但没有结果集...
在这个例子中,`PREPARE`语句创建了一个预编译的删除语句,然后`EXECUTE`语句使用变量`Emp_id_var`的值来动态地执行删除操作。 3. **DECLARE DYNAMIC CURSOR 或 PROCEDURE**:这种格式结合了`DECLARE`、`PREPARE`...
在这个例子中,`tableName`和具体的列名决定了SQL语句的内容,`USING`子句用于传递绑定变量的值。 二、PREPARE和BIND 除了`EXECUTE IMMEDIATE`,Oracle还提供`PREPARE`语句来预编译SQL语句,这在处理大量重复执行...
这里的@sql变量用于存储动态构建的SQL语句,然后通过EXEC或sp_executesql执行。 二、动态SQL的优势 1. **灵活性**:动态SQL可以根据程序运行时的条件和数据生成不同的SQL语句,适应性强。 2. **参数化**:可以使用...
在这个例子中,我们同样通过字符串拼接创建了动态的SQL语句,然后使用`EXECUTE IMMEDIATE`执行。值得注意的是,当发生异常时,可以捕获异常并通过`EXCEPTION`块进行相应的处理。 #### 四、返回游标参数 在某些情况...
EXECSQL语句的执行过程中,会将SQL语句传递给数据库管理器,然后将查询结果返回给宿主变量。宿主变量可以被C语言语句引用,也可以被SQL语句引用。 二、使用ODBC连接SQL Server数据库 第二部分介绍了使用ODBC连接...
在这个例子中,我们首先声明一个变量v_sql存储SQL语句,然后使用EXECUTE IMMEDIATE执行SQL,并将结果绑定到变量employee_record。注意,':1'是绑定变量的占位符,USING子句用于传入实际值。 2. PREPARE/EXECUTE...
表类型变量允许我们将多个值作为单个参数传递,而XML类型则可以用来序列化一组值。 2. **创建表类型**: 首先,我们需要定义一个用户自定义的表类型。这可以在数据库级别完成,例如: ```sql CREATE TYPE dbo....
- **声明嵌入SQL语句中使用的C变量**:用于在SQL语句中传递值或接收查询结果。 - **连接数据库**:建立与数据库的连接。 - **数据的查询和修改**:执行SELECT、INSERT、UPDATE、DELETE等操作。 - **游标的使用**:...