SQL 存储过程 通过多个ID更新数据
2014-12-08 16:08
507 查看
下面举个例子说明:
我想让一部分品牌的名称(即Brand_Name)后面加上1,Brand_ID是主键,sql语句很容易实现,但是存储过程如何写呢?
错误写法如下:
//************************************************
ALTER PROC [dbo].[存储过程名]
@Brand_IDs varchar(max)
AS
BEGIN
UPDATE T_System_Brand
SET
Brand_Name=Brand_Name+'1'
WHERE Brand_ID IN (@Brand_IDs)
END
//**************************************************
正确的写法(分两步):
第一步:
在数据中
可编程行->函数->表值函数 中添加一个函数,具体如下:
ALTER FUNCTION [dbo].[Split]
(
@c VARCHAR(MAX) ,
@split VARCHAR(50)
)
RETURNS @t TABLE ( col VARCHAR(50) )
AS
BEGIN
WHILE ( CHARINDEX(@split, @c) <> 0 )
BEGIN
INSERT @t( col )
VALUES ( SUBSTRING(@c, 1, CHARINDEX(@split, @c) - 1) )
SET @c = STUFF(@c, 1, CHARINDEX(@split, @c), '')
END
INSERT @t( col ) VALUES ( @c )
RETURN
END
第二步:
在存储过程中可以这样写:
ALTER PROC [dbo].[存储过程名]
@Brand_IDs varchar(max)
AS
BEGIN
UPDATE T_System_Brand
SET
Brand_Name=Brand_Name+'1'
WHERE Brand_ID IN ( SELECT * FROM Split(@Brand_IDs , ','))
END
备注:我把表值函数截图:
我想让一部分品牌的名称(即Brand_Name)后面加上1,Brand_ID是主键,sql语句很容易实现,但是存储过程如何写呢?
错误写法如下:
//************************************************
ALTER PROC [dbo].[存储过程名]
@Brand_IDs varchar(max)
AS
BEGIN
UPDATE T_System_Brand
SET
Brand_Name=Brand_Name+'1'
WHERE Brand_ID IN (@Brand_IDs)
END
//**************************************************
正确的写法(分两步):
第一步:
在数据中
可编程行->函数->表值函数 中添加一个函数,具体如下:
ALTER FUNCTION [dbo].[Split]
(
@c VARCHAR(MAX) ,
@split VARCHAR(50)
)
RETURNS @t TABLE ( col VARCHAR(50) )
AS
BEGIN
WHILE ( CHARINDEX(@split, @c) <> 0 )
BEGIN
INSERT @t( col )
VALUES ( SUBSTRING(@c, 1, CHARINDEX(@split, @c) - 1) )
SET @c = STUFF(@c, 1, CHARINDEX(@split, @c), '')
END
INSERT @t( col ) VALUES ( @c )
RETURN
END
第二步:
在存储过程中可以这样写:
ALTER PROC [dbo].[存储过程名]
@Brand_IDs varchar(max)
AS
BEGIN
UPDATE T_System_Brand
SET
Brand_Name=Brand_Name+'1'
WHERE Brand_ID IN ( SELECT * FROM Split(@Brand_IDs , ','))
END
备注:我把表值函数截图:
相关文章推荐
- SQL 存储过程 通过多个ID更新数据 分类: SQL Server 2014-12-08 16:08 299人阅读 评论(0) 收藏
- ASP.NET 3.5核心编程学习笔记(23):Linq-to-SQL 数据的更新、事务、存储过程、函数
- SQL 通过视图更新数据
- SQL 利用存储过程实现对表数据有则更新无则添加
- sql批量插入:存在id相同则更新数据
- T-SQL - 通过关联ID,将A表中多列ID关联为B表中的数据
- 使用 Phoenix 通过 sql 语句 更新操作 hbase 数据
- hibernate通过SQL更新数据
- 使用Phoenix通过sql语句更新操作hbase数据
- T-SQL - 通过关联ID,将A表中多列ID关联为B表中的数据
- Sql 随机更新一条数据返回更新数据的ID编号
- oracle pl/sql 通过存储过程返回数据表
- mysql通过一条sql完成没有则更新,有则插入新数据
- 读取xml通过deserialize和linq to sql快速更新数据表
- SQL通过Datatable更新数据库表内容
- sql存储过程通过ID删除两表中的数据。
- asp.net+Sqlserver 通过存储过程读取数据
- Python通过调用mysql存储过程实现更新数据功能示例
- SQL charindex 通过id字符串获取数据
- 使用Phoenix通过sql语句更新操作hbase数据