1 c#传递表变量去存储数据的例子
1 c# 代码
using (SqlConnection con = GetEditorConnection())
{
con.Open();
using (SqlCommand command = con.CreateCommand())
{
SqlTransaction st = con.BeginTransaction();
command.Transaction = st;
try
{
command.CommandText = procedureName;
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("p_Source", dt));
num = command.ExecuteNonQuery();
st.Commit();
}
catch (Exception ex)
{
Log.writeLog("save data error and relationship function is executeProcedure!");
st.Rollback();
throw new Exception(ex.Message);
}
}
con.Close();
}
2 存储过程实例:
-- Set the database where the stored procedure is located
USE RawData
GO
-- Drop older version if it exists
IF OBJECTPROPERTY(OBJECT_ID(N'dbo.addEDISecurityMaster'), N'IsProcedure') = 1
DROP PROCEDURE dbo.addEDISecurityMaster
GO
IF EXISTS(SELECT * FROM sys.types WHERE name = 'tp_EDISecurityMaster')
DROP TYPE tp_EDISecurityMaster
GO
CREATE TYPE dbo.tp_EDISecurityMaster AS TABLE
(
ScexhID int not null,
SedolID int null,
Actflag char(1) null,
Changed smalldatetime null,
Created smalldatetime null,
SecID int null,
IssID int null,
ISIN char(12) null,
USCode char(9) null,
IssuerName char(70) null,
CntryofIncorp char(2) null,
SIC char(10) null,
CIK char(10) null,
IndusID int null,
SectyCD char(3) null,
SecurityDesc char(70) null,
ParValue decimal(14,5),
PVCurrency char(3) null,
StatusFlag char(1) null,
PrimaryExchgCD char(6) null,
Sedol char(7) null,
SedolCurrency char(2) null,
Defunct bit null,
SedolRegCntry char(2) null,
StructCD varchar(10) null,
ExchgCntry char(2) null,
ExchgCD char(6) null,
Mic char(4) null,
Micseg char(4) null,
LocalCode varchar(50) null,
ListStatus char(1) null,
ListDate smalldatetime null,
OriginalFileName varchar(50) null
)
GO
GRANT EXECUTE ON TYPE::dbo.tp_EDISecurityMaster TO public
GO
-- Author: bing mi
-- Create date: 2017-03-06
-- Revisions:
--
CREATE PROCEDURE dbo.addEDISecurityMaster
@p_Source tp_EDISecurityMaster READONLY
AS
SET NOCOUNT ON
DECLARE @l_Err INT,
@l_Msg VARCHAR(500),
@l_Id NVARCHAR(15),
@l_ProcName VARCHAR(30),
@l_ProcDB VARCHAR(30)
-- Initialize error handle-related constants
SET @l_Id = ''
SET @l_ProcName = OBJECT_NAME (@@PROCID)
SET @l_ProcDB = DB_NAME()
-- Business logic
BEGIN TRY
MERGE INTO dbo.EDISecurityMaster dst
USING @p_Source src ON dst.ScexhID = src.ScexhID
WHEN MATCHED THEN
UPDATE SET
dst.SedolID=src.SedolID,
dst.Actflag=src.Actflag,
dst.Changed=src.Changed,
dst.Created=src.Created,
dst.SecID=src.SecID,
dst.IssID=src.IssID,
dst.ISIN=src.ISIN,
dst.USCode=src.USCode,
dst.IssuerName=src.IssuerName,
dst.CntryofIncorp=src.CntryofIncorp,
dst.SIC=src.SIC,
dst.CIK=src.CIK,
dst.IndusID=src.IndusID,
dst.SectyCD=src.SectyCD,
dst.SecurityDesc=src.SecurityDesc,
dst.ParValue=src.ParValue,
dst.PVCurrency=src.PVCurrency,
dst.StatusFlag=src.StatusFlag,
dst.PrimaryExchgCD=src.PrimaryExchgCD,
dst.Sedol=src.Sedol,
dst.SedolCurrency=src.SedolCurrency,
dst.Defunct=src.Defunct,
dst.SedolRegCntry=src.SedolRegCntry,
dst.StructCD=src.StructCD,
dst.ExchgCntry=src.ExchgCntry,
dst.ExchgCD=src.ExchgCD,
dst.Mic=src.Mic,
dst.Micseg=src.Micseg,
dst.LocalCode=src.LocalCode,
dst.ListStatus=src.ListStatus,
dst.ListDate=src.ListDate,
dst.OriginalFileName=src.OriginalFileName
WHEN NOT MATCHED BY TARGET THEN
INSERT
( ScexhID,
SedolID,
Actflag,
Changed,
Created,
SecID,
IssID,
ISIN,
USCode,
IssuerName,
CntryofIncorp,
SIC,
CIK,
IndusID,
SectyCD,
SecurityDesc,
ParValue,
PVCurrency,
StatusFlag,
PrimaryExchgCD,
Sedol,
SedolCurrency,
Defunct,
SedolRegCntry,
StructCD,
ExchgCntry,
ExchgCD,
Mic,
Micseg,
LocalCode,
ListStatus,
ListDate,
OriginalFileName
)
values
(src.ScexhID,
src.SedolID,
src.Actflag,
src.Changed,
src.Created,
src.SecID,
src.IssID,
src.ISIN,
src.USCode,
src.IssuerName,
src.CntryofIncorp,
src.SIC,
src.CIK,
src.IndusID,
src.SectyCD,
src.SecurityDesc,
src.ParValue,
src.PVCurrency,
src.StatusFlag,
src.PrimaryExchgCD,
src.Sedol,
src.SedolCurrency,
src.Defunct,
src.SedolRegCntry,
src.StructCD,
src.ExchgCntry,
src.ExchgCD,
src.Mic,
src.Micseg,
src.LocalCode,
src.ListStatus,
src.ListDate,
src.OriginalFileName
);
END TRY
-- Exception handle
BEGIN CATCH
-- Rollback transaction if needed
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRAN
END
-- Log error message
SET @l_Msg = 'Number: ' + CONVERT(VARCHAR, ERROR_NUMBER()) + CHAR(10) +
'Line: ' + CONVERT(VARCHAR, ERROR_LINE()) + CHAR(10) +
'Severity: ' + CONVERT(VARCHAR, ERROR_SEVERITY()) + CHAR(10) +
'State: ' + CONVERT(VARCHAR, ERROR_STATE()) + CHAR(10) +
'Procedure: ' + ISNULL(ERROR_PROCEDURE(), '') + CHAR(10) +
'Message: ' + ERROR_MESSAGE()
SET @l_Err = ERROR_NUMBER()
-- Store error and raise error
EXECUTE dbo.sp_LogError @l_Err, @l_Msg, @l_Id, @l_ProcName, @l_ProcDB
RAISERROR(@l_Msg, 18, 1)
RETURN @l_Err
END CATCH
RETURN @@ERROR
GO
GRANT EXECUTE ON dbo.addEDISecurityMaster TO rl_DataUpload
GO
注意表参数顺序和c#里面传递过来的table列顺序一定要一样,列长度也要一样呀!
1 c#传递表变量去存储数据的例子的更多相关文章
- Python学习3——变量如何存储数据
数值类型:包括整型.浮点型 变量名字代表的是存储地址. num01 = 100 print(id(num01)) #输出变量num01存储的内存地址,输出的是十进制值 num02 = num01 pr ...
- 如何使用BMap.Point传递变量、存储数据?
在开发中使用到了百度地图进行开发,用于展示企业位置.由于数据量庞大,如果使用marker,将会造成界面卡顿,处理慢的问题. 在查看百度地图API示例是发现了海量点这个东西,还别说对于大数量的点加载起来 ...
- [BILL WEI]SQL 如何将查询到的列作为表名去查询数据
我们在做sql查询的时候,有时候需要将查询的列作为表名,去引用,然后再次查询 declare @table_name varchar(20) select @table_name=table_name ...
- SQLServer中临时表与表变量的区别分析(转)
在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们实现的功能基本上是一样的,可如何在一个存储过程中有时候去使用临时表而不使用表变量,有时候去使用表变量而不使用临时表呢? 临时表 临时表与永 ...
- SQL Server 临时表 Vs 表变量
开始 说临时表和表变量,这是一个古老的话题,我们在网上也找到很多的资料阐述两者的特征,优点与缺点.这里我们在SQL Server 2005\SQL Server 2008版本上通过举例子,说明临时表和 ...
- SQLServer中临时表与表变量的区别分析【转】
在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们实现的功能基本上是一样的,可如何在一个存储过程中有时候去使用临时表而不使用表变量,有时候去使用表变量而不使用临时表呢? 临时表 临时表与永 ...
- [转]SQL Server中临时表与表变量的区别
[转]http://blog.csdn.net/skyremember/archive/2009/03/05/3960687.aspx 我们在数据库中使用表的时候,经常会遇到两种使用表的方法,分别就是 ...
- SQL Server中临时表与表变量的区别
我们在数据库中使用表的时候,经常会遇到两种使用表的方法,分别就是使用临时表及表变量.在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们实现的功能基本上是一样的,可如何在一个存储过程中有时候 ...
- sql server中的临时表、表变量和公用表表达式
在编写T-SQL语句的时候,SQL Server提供了三种方法临时存储某些结果集,分别是临时表.表变量和公用表表达式. 临时表 临时表需要在临时数据库TempDB中通过I/O操作来创建表结构,一旦用户 ...
随机推荐
- Nginx优化之日志优化,URL访问控制,防盗链,及站点文件目录优化
Nginx日志相关优化与安全 日志切割脚本如下: #!/bin #日志切割脚本 Date=`date +%Y%m%d` Bdir="/usr/local/nginx" Nginxl ...
- easyUI之LinkButton(按钮)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...
- AJAX异步对象,即XMLHttpRequest
//创建AJAX异步对象,即XMLHttpRequest function createAJAX(){ var ajax = null; try{ ajax = new ActiveXObject(& ...
- RabbitMQ学习之:(八)Topic Exchange (转贴+我的评论)
From: http://lostechies.com/derekgreer/2012/05/18/rabbitmq-for-windows-topic-exchanges/ RabbitMQ for ...
- Highcharts的常用属性及导出SVG
做了好几个项目都用到了Highcharts,好用自然不用多说,这里总结一下每次作图经常用的一些配置,方便以后查看. 引入Highcharts非常简单,只需引入对应的js,页面中写入存放表格的div,j ...
- centos7.2 mysql tar.gz 搭建 (亲测成功)
1.安装依赖:yum -y install libaioyum search libaio 2.卸载系统自带的Mariadb数据库:rpm -qa | grep mariadbrpm -e --nod ...
- iptable规则的执行顺序
众所周知,iptable的中包含了各种各样的table和规则链条.这篇博文对规则链的执行顺序做一个简单的介绍. Chain OUTPUT (policy ACCEPT)target prot opt ...
- python实现迭代法求方程组的根
有方程组如下: 迭代法求解x,python代码如下: import numpy as np import matplotlib.pyplot as plt A = np.array([[8, -3, ...
- harbor API 与tag 清理
harbor API 官方swagger swagger在线查看 harbor tag 清理 python程序 import requests import json class RequestCli ...
- 配置nova服务使用ceph作为后端存储
在ceph监视器上执行 1.创建pool池 为nova服务创建pool池(因为我只有一个OSD节点,所以要将副本数设置为1) ceph osd pool create nova-vms 32 ceph ...