存储过程中用exec执行sql语句问题
来源:互联网 发布:注册域名需要多少钱 编辑:程序博客网 时间:2024/05/16 15:22
存储过程中用exec执行sql语句问题
1-------创建的一个存贮过程
CREATE procedure up_update_all_kit
@str_table varchar(50),
@int_kit varchar(20),
@str_column varchar(20),
@str_where_key varchar(20)
as
begin
SET XACT_ABORT ON
begin transaction
exec('update ' + @str_table + ' set ' + @int_kit + '= ' + @int_kit + ' + 1 '+' where '+ @str_column + ' = '+ @str_where_key )
if(@@error=0 and @@rowcount=1)
commit transaction
else
rollback transaction
end
GO
2---------执行一个存贮过程
INSERT INTO @IndexTable(NId) EXEC('SELECT ModuleCode FROM SModule')这句话在存储过程中出现以下错误:
无法在向表插入变量时将 EXECUTE 用作源。
方法一
create table #IndexTable(NID int) --创建一个临时表
--插入数据
INSERT INTO #IndexTable(NId) EXEC('SELECT ModuleCode FROM SModule')
方法二
declare @sql varchar(8000)
set @sql='INSERT INTO '''+@IndexTable+''' (NId) SELECT ModuleCode FROM SModule'
exec (@sql)
实例二:
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ALTER procedure up_Flower_Order --up_Flower_Order '2742'
@sOrderID varchar(255)
As
CREATE TABLE #BZ_Flower_order
(
Serial_id numeric,
Order_id varchar (50),
Order_flower_num int,
Flower_id varchar (50),
Flower_name varchar(50),
P_user_id varchar(50),
Accept_flower_time varchar (50),
Accept_flower_hour varchar (50),
Accept_man_name varchar (50),
Accept_man_tel varchar (14),
Accept_man_mobile varchar (14),
Accept_man_addr text,
Order_total_money real,
Send_man_status varchar (5),
LeaveMessage nvarchar (200),
Remark text,
Busi_id varchar(50),
Order_CommuName varchar(50),
Order_CoomuMobile varchar(50),
Order_CommuTel varchar(50),
Order_CommuEmail varchar(100),
Order_CommuAddr ntext,
certificate_style varchar(50),
Flower_shop_name varchar(100),
Flower_shop_id numeric,
OrderNum varchar(100),
order_status varchar(50)
)
declare @sSQL nvarchar(2000)
set @sSQL =N'Select
BZ_flower_order.Serial_id ,
BZ_flower_order.Order_id,
BZ_flower_order.Order_flower_num,
BZ_flower_order.Flower_id ,
BZ_flower_order.Flower_name,
BZ_flower_order.P_user_id,
BZ_flower_order.Accept_flower_time,
BZ_flower_order.Accept_flower_hour,
BZ_flower_order.Accept_man_name ,
BZ_flower_order.Accept_man_tel ,
BZ_flower_order.Accept_man_mobile ,
BZ_flower_order.Accept_man_addr ,
BZ_flower_order.Order_total_money ,
BZ_flower_order.Send_man_status ,
BZ_flower_order.LeaveMessage ,
BZ_flower_order.Remark ,
BZ_flower_order.Busi_id,
BZ_Data_Order.Order_CommuName,
BZ_Data_Order.Order_CoomuMobile,
BZ_Data_Order.Order_CommuTel,
BZ_Data_Order.Order_CommuEmail,
BZ_Data_Order.Order_CommuAddr,
BZ_Data_Order.certificate_style,
'''',0,BZ_Data_Order.OrderNum,
BZ_Data_Order.Order_status from BZ_Flower_order,BZ_Data_Order WHERE BZ_Flower_order.Order_id=BZ_Data_Order.Order_ID and BZ_flower_order.Order_id ='+@sOrderID
insert into #BZ_Flower_order
EXECUTE sp_executesql @sSQL
--????
Update #BZ_Flower_order Set #BZ_Flower_order.Flower_shop_name=BZ_flower_shop.Flower_shop_name,#BZ_Flower_order.Flower_shop_id=BZ_flower_shop.Flower_shop_id
From #BZ_Flower_order,BZ_flower_shop
where #BZ_Flower_order.Busi_id =BZ_flower_shop.Busi_id
--????
update #BZ_Flower_order set #BZ_Flower_order.certificate_style=Sys_Dic_Normal.sName
from Sys_Dic_Normal,#BZ_Flower_order
where Sys_Dic_Normal.sCode=#BZ_Flower_order.certificate_style
--????
update #BZ_Flower_order set #BZ_Flower_order.order_status=Sys_Dic_Normal.sName
from Sys_Dic_Normal,#BZ_Flower_order
where Sys_Dic_Normal.sCode=#BZ_Flower_order.order_status
select * from #BZ_Flower_order
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
//执行存贮过程
string sqlread="exec up_Flower_Order '"+sorderid+"'";
System.Data.DataTable dt = Framework.ComLib.DataBase.Query(sqlread).Tables[0];
- 存储过程中用exec执行sql语句问题
- SQL 中EXEC 后面 执行 存储过程 和 语句 的区别
- .net 中用存储过程执行SQL
- SQL语句-exec执行
- sql 语句 exec 执行字符串
- 存储过程里面执行SQL语句
- 存储过程中执行参数SQL语句
- 存储过程中执行动态Sql语句
- mysql存储过程执行动态sql语句
- 存储过程中执行动态Sql语句
- 存储过程中执行动态Sql语句
- 存储过程中执行动态Sql语句
- 存储过程中执行动态Sql语句
- 存储过程中执行动态Sql语句
- Entity Framework 执行sql语句 存储过程
- EntityFrameworkCore执行SQL语句和存储过程
- sql语句,exec执行 拼接的字符串 输出参数 问题
- 只执行SQL语句(不执行存储过程)
- 在ASP.NET中防止同一台机器访问 浏览数增加
- SQL Server 数据库管理常用的SQL和T-SQL语句
- 关于MDA的长期等待
- Exceptional C++ Style之9
- 张泰钟怎么那么早就回来了。
- 存储过程中用exec执行sql语句问题
- JSP语法详解
- 理解结构和类的区别
- SWMM引擎之一——如何Use Swmm5.dll! 以及编译SWMM5 Engine
- AJAX IN ACTION 学习笔记(二)
- VB设置左右声道音量
- 新手上路哈哈`
- 正则表达式语法
- 常用正则表达式语法例句