首页 > 数据库 >【SQL Server】将EXEC的变量结果赋值输出

【SQL Server】将EXEC的变量结果赋值输出

时间:2024-09-06 08:55:55浏览次数:8  
标签:fnumber sonfnumber VARCHAR EXEC sql Server SQL id 255

动态传入表名和表的某些属性,然后将标的属性赋值到参数中,以便后续使用。

首先一张表(表和字段设计略),使用动态的语句如下:

1 DECLARE @tablename VARCHAR(255) = 'BomNo'
2     ,@id INT = 1
3     ,@sql NVARCHAR(MAX) ;
4 SET @sql ='SELECT fnumber,sonFnumber FROM BomNo WHERE id = ' + CONVERT(varchar,@id)
5 EXEC(@sql)

执行T-SQL 语句,结果如下:

 如果,我们希望把输出的 fnumber 和 sonFnumber 作为参数,应该怎么做?这时候就涉及到了系统函数sp_executesql

DECLARE @tablename VARCHAR(255) = 'BomNo'
    ,@id INT = 1
    ,@sql NVARCHAR(MAX)     -- 如果定义执行语句类型为VARCHAR,会报错:过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'
    ,@nparam NVARCHAR(1000) = N' @fnumber VARCHAR(255) OUTPUT,@sonfnumber VARCHAR(255) OUTPUT';

DECLARE @fnumber VARCHAR(255),@sonfnumber VARCHAR(255)
SET @sql ='SELECT @fnumber= fnumber,@sonFnumber=sonFnumber FROM BomNo WHERE id = ' + CONVERT(varchar,@id)

EXEC sys.sp_executesql @sql, @nparam, @fnumber OUTPUT, @sonfnumber OUTPUT
-- 传递到参数的值
SELECT @fnumber  fnumber, @sonfnumber sonfnumber

可以发现,参数已经赋值。

标签:fnumber,sonfnumber,VARCHAR,EXEC,sql,Server,SQL,id,255
From: https://www.cnblogs.com/luyj00436/p/18399528

相关文章

  • MySQL中 VARCHAR 可设置的最大长度是多少?
    在使用MySQL的过程中,在存储字符串时,大家或许都有过这样或那样的困惑,譬如:1. 对于固定长度的字符串,为什么推荐使用CHAR来存储?2. VARCHAR可设置的最大长度是多少?3. 给定一个字符串,怎么知道它的空间使用情况?4. 创建索引时,提示“Indexcolumnsizetoolarge.Themaxim......
  • sql注入(极客大挑战2019EasySQL1)
    题目链接我们输入http://643dcead-c254-412c-a4fe-5787862bbf9e.node5.buuoj.cn:81/check.php?username=admin'andpassword=13123响应为如下,提示我们输入password,看似url中查询了password,但是因为这是一个字符型注入,后台url转为SELECT*FROMusersWHEREusername='admi......
  • MySQL 源码|67 - 语法解析(V2):数值字面值|V20240905
    目录文档:MySQL源码|源码剖析文档目录源码位置(版本=MySQL8.0.37):/sql/sql_yacc.yy前置文档:MySQL源码|33-语法解析:bison基础语法规则根据MySQL源码|21-词法解析:状态转移逻辑梳理中梳理的MySQL词法解析逻辑,有如下终结符与数值相关:终结符名称终结符表示内容NUM......
  • mysqldump命令详解
    在日常维护工作当中经常会需要对数据进行导出操作,而mysqldump是导出数据过程中使用非常频繁的一个工具;它自带的功能参数非常多,文章中会列举出一些常用的操作,在文章末尾会将所有的参数详细说明列出来。 语法:默认不带参数的导出,导出文本内容大概如下:创建数据库判断语句-删除表-......
  • mysql主备环境同机搭建
    社区版下载地址:downloads.mysql.com/archives/community/原包 ##解压[root@prdb19u01]#tar-xvfmysql-8.4.0-linux-glibc2.28-x86_64.tar.xzmysql-8.4.0-linux-glibc2.28-x86_64/bin/mysql-8.4.0-linux-glibc2.28-x86_64/bin/myisam_ftdumpmysql-8.4.0-linux-glibc......
  • docker部署mysql8主从
     一、拉取mysql镜像dockerpullmysql 二、创建容器#主库dockerrun-itd-p3306:3306-eMYSQL_ROOT_PASSWORD=123456--namemysql-mastermysql#从库dockerrun-itd-p3307:3306-eMYSQL_ROOT_PASSWORD=123456--namemysql-slavemysql 三、配置主库[m......
  • 基于springboot的宿舍管理系统的设计与实现 (含源码+sql+视频导入教程)
    ......
  • 深入解析 Docker exec 命令
      目录Dockerexec命令详解常用选项示例注意 Docker容器允许你在隔离的环境中运行应用程序,这样可以确保应用运行所需的环境是一致的,无论是在开发、测试还是生产环境中。当需要在Docker容器中执行命令时,通常会用到dockerexec命令。下面是对dockerexec命令......
  • 专项练习-数据库SQL-177题(下)
     ※食用指南:文章内容为牛客网《专项练习-数据库SQL》177道选择题,重点笔记,用于重复思考错题,加深印象练习传送门:专项练习-数据库SQL-177题目录:1、维护参照完整性约束的策略2、数据库事务的特性(ACID)3、DQL、DML、DDL、DCL,提交数据的类型4、视图的概念5、索引的描述6、各......
  • SQL——DQL用来查询数据库表中的记录(MySQL)
    DQL英文全称是DataQueryLanguage(数据查询语言),用来查询数据库表中的记录。关键字:select一、前言select  字段列表  from表名列表 --基本查询where  条件列表-----条件查询(where)groupby 分组字段列表 having分组后条件列表--分组查询(groupby......