-
sql语句大全之MSSQL 存储过程中 表值参数用法
一、SQL自定义表类型简介
1.1SQL自定义表类型简介
在SQL-server中,用户将一个表结构定义为一个新的用户类型,
并且可以将这个用户自定义类型作为 存储过程 函数 SQL语句中的参数类型
创建一个 自定义 “表类型”
CREATE TYPE [dbo].[tableTest] AS TABLE( [a] [varchar](30) NULL, [b] [varchar](100) NULL )
注意事项:
1 表类型不能做为列定义的列类型
2 创建表类型后,不可以执行 Alter Type ,只可以进行 Create type drop type
3 创建表类型时,计算列不 可以调用用户自定义函数
4 创建表类型 不能为表类型指定默认值
5 创建表类型 禁止使用非聚集索引
1.2 SQL自定义表类型应用场景
大数据库插入
存储过程中 将常用的临时表定义为一个表类型 简化代码,使代码整齐
二、SQL自定义表类型—举例应用
2.1 存储过程调用自定义表类型
定义存储过程
CREATE proc [dbo].[pr_testTableType] @keyId varchar(36), @tableInfo tableTest readOnly --- 自定义表类型必须使用readonLy as begin create table #t (keyId int identity,a varchar(200),b varchar(200)) insert into #t (a,b) select a,b from @tableInfo t select * from #t truncate table #t drop table #t end
c# 代码调用存储过程 (采用参数化的方式发送此参数) DataTable tb = new DataTable(); DataColumn a = new DataColumn("a"); DataColumn b = new DataColumn("b"); tb.Columns.Add(a);tb.Columns.Add(b); DataRow r1 =tb.NewRow(); r1["a"] ="测试1----"; r1["b"] ="测试2"; tb.Rows.Add(r1); SqlParameter[] p = new SqlParameter[]{ new SqlParameter("@keyId",System.Guid.NewGuid().ToString()), new SqlParameter("@tableInfo",tb) }; // 方法二: // SqlParameter tmp = new SqlParameter("@tableInfo",SqlDbType.Structured); // tmp.SqlValue = tb; // SqlParameter[] p = new SqlParameter[]{ // new SqlParameter("@keyId",System.Guid.NewGuid().ToString()), // tmp // }; db.ExecProcParameterReDataSet("pr_testTableType",p);
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式