msSQL使用表参数
2016-02-25 01:05
357 查看
使用表参数 表变量(Table Parameters)可以将整个表数据汇集成一个参数传递给存储过程或SQL语句。它的注意性能开销是将数据汇集成参数(O(数据量))。 定义了一个表参数jk_users_bulk_insert CREATE TYPE jk_users_bulk_insert AS TABLE ( user_login varchar(60), user_pass varchar(64), user_nicename varchar(50), user_email varchar(100), user_url varchar(100), user_activation_key varchar(60), user_status int, display_name varchar(250) ) 定义一个存储过程接受表参数jk_users_bulk_insert CREATE PROCEDURE sp_insert_jk_users @usersTable jk_users_bulk_insert READONLY AS INSERT INTO jk_users (user_login, user_pass, user_nicename, user_email, user_url, user_activation_key, user_status, display_name, user_registered) SELECT user_login, user_pass, user_nicename, user_email, user_url, user_activation_key, user_status, display_name, GETDATE() FROM @usersTable 客户端代码中,调用存储过程并且将表作为参数方式传递给存储过程。 var sw = Stopwatch.StartNew(); using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLCONN2"].ToString())) { conn.Open(); //// Invokes the stored procedure. using (var cmd = new SqlCommand("sp_insert_jk_users", conn)) { cmd.CommandType = CommandType.StoredProcedure; //// Adding a "structured" parameter allows you to insert tons of data with low overhead var param = new SqlParameter("@userTable", SqlDbType.Structured) { Value = dt }; cmd.Parameters.Add(param); cmd.ExecuteNonQuery(); } } sw.Stop();
相关文章推荐
- check the manual that corresponds to your MySQL server version for the right syntax的解决方法
- 使用memcache处理缓存的三种方案
- redis集群搭建示例
- mongodb 3.2 实战(一)非关系型数据库设计,如何进行mongo的数据库设计?
- mysql创建触发器错误提示:Can not update in stored function/trigger already used by statement invoked
- SQL语句技巧分享
- Mysql Replication 数据不一致解决方案
- 1,利用spring-data-redis整合
- db2 connect的时候报SQL1762N异常
- mysql 表分区技术
- Oracle ---查询当前日期的前几个月时间
- Navicat for MySQL 还原数据教程
- 数据库定时发送邮件
- 防止sql注入
- oracle导入、导出
- mysql-5.7.11-winx64 免安装版(MySQL ZIP Archive版)配置及密码问题处理
- mysql递归查询treeview
- Oracle Connect By Prior(递归查询)简洁实例
- 生成SQL SERVER数据库脚本
- Oracle可插拔数据库的jdbc连接串写法