sp_executesql 可動態傳入傳出參數

在做一個功能時,要求參數是動態傳入并且有參數可以動態傳出,字符串動態組成的sql以前只是知道 用Execute去執行,今 天發現sp_executesql這個是可以達成這個目 的。

ALTER PROCEDURE [dbo].[SLMFormateExportCenterFields]
-- Add the parameters for the stored procedure here
@TMP varchar(max),
@fields nvarchar(max) output
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

--DECLARE @TMP VARCHAR(MAX)
--SET @TMP = ‘sanow,orgFeeCode,orgName,FRCode,FRName,payDatetime,humanCategory,EmpCount,SSS47,SSS91,payYear,payMonth,orgSystemID,refno1,refno2,salaryType‘

DECLARE @sqlDy nvarchar(max)

SET @fields = ‘‘
SET @sqlDy = ‘
DECLARE @ITEMNO VARCHAR(20), @ITEMNAME VARCHAR(50)

DECLARE A CURSOR FOR
SELECT itemno, itemname FROM eHR3.dbo.E9SLMUploadCenterItems WHERE forexport = 1 ORDER BY sort1

OPEN A
FETCH NEXT FROM A
INTO @ITEMNO, @ITEMNAME

WHILE @@FETCH_STATUS = 0
BEGIN
IF CHARINDEX(@ITEMNO, @TMP,0) > 0
BEGIN
SET @fields = @fields + @ITEMNO + ‘‘ AS ‘‘ + ‘‘‘‘‘‘‘‘+ @ITEMNAME + ‘‘‘‘‘‘‘‘ + ‘‘,‘‘
END

FETCH NEXT FROM A
INTO @ITEMNO, @ITEMNAME
END
CLOSE A
DEALLOCATE A‘
exec sp_executesql @sqlDy, N‘@TMP varchar(max),@fields nvarchar(max) output‘, @TMP, @fields output
SET @fields = SUBSTRING(@fields,0, LEN(@fields))

RETURN
END

原文地址:https://www.cnblogs.com/sdikerdong/p/12176134.html

时间: 2024-10-28 19:03:54

sp_executesql 可動態傳入傳出參數的相关文章

雙擊轉入到另一個TCODE,並且參數傳入到SELECT-OPTION參數中

第一種方法: 這種方法只到了輸入值的界面,還需要按F8運行,可以查看CALL TRANSACTION  之 USING幫助文檔 "用內表傳參數到SELECT-OPTION參數中        DATA: BDCDATA_WA  TYPE BDCDATA, "定義一個系統結構 BDCDATA_TAB TYPE TABLE OF BDCDATA."定義系統內表 DATA OPT TYPE CTU_PARAMS."操作變量內表        CLEAR BDCDATA_W

篇章一:[AngularJS] 使用AngularAMD動態載入Controller

前言 使用AngularJS來開發Single Page Application(SPA)的時候,可以選用AngularUI Router來提供頁面內容切換的功能.但是在UI Router的使用情景裡,需要開發人員將每個State所使用的Controller預先載入之後,才能正常的切換頁面內容.這也就代表開發人員所建立的SPA,必須要在啟動的當下,就先將整個SPA所用到的Controller都預先載入到瀏覽器之中.而這樣的預先載入所有Controller備用的動作,在大型的專案中很容易造成瀏覽器

篇章二:[AngularJS] 使用AngularAMD動態載入Service

前言 「使用AngularAMD動態載入Controller」:這篇文章裡介紹如何使用AngularAMD來動態載入Controller.本篇文章以此為基礎,介紹如何使用AngularAMD來動態載入Service,讓SPA的啟動過程更加輕量化,用以提升使用者的操作體驗.並且也透過這樣掛載式的設計,讓專案功能更加模組化,增加開發與維護的工作效率.主要為自己留個紀錄,也希望能幫助到有需要的開發人員. AngularAMD 安裝 本篇文章以「使用AngularAMD動態載入Controller」的範

篇章三:[AngularJS] 使用AngularCSS動態載入CSS

前言 使用AngularAMD動態載入Controller 使用AngularAMD動態載入Service 上列兩篇文章裡,介紹了如何如何使用AngularAMD來動態載入Controller與Service.本篇文章以此為基礎,介紹如何使用AngularCSS來動態載入CSS,讓專案功能更加模組化,增加開發與維護的工作效率.主要為自己留個紀錄,也希望能幫助到有需要的開發人員. AngularCSS 安裝 本篇文章以「使用AngularAMD動態載入Service」的範例程式為基礎,為其附加動態

用php動態產生各種尺寸的圖片

我的做法是用php動態產生各種尺寸的圖片,例如<img src="img.php?src=a.jpg&width=100&height=200"...<img src="img.php?src=a.jpg&width=200&height=200"...<img src="img.php?src=a.jpg&width=300&height=200"... 我這個a.jpg就是原圖

包学会之浅入浅出Vue.js:升学篇

上一篇<包学会之浅入浅出Vue.js:开学篇>中,我们初步了解单页面组件这个概念,现在通过一个项目,来进一步解析组件的应用吧,Go~ 需求背景 组件库是做UI和前端日常需求中经常用到的,把一个按钮,导航,列表之类的元素封装起来,方便日常使用,调用方法只需直接写上<qui-button></qui-button>或者<qui-nav></qui-nav>这样的代码就可以,是不是很方便呢,接下来我们将要完成以下页面: 这是我们组件库的首页,包含三个子

浅入浅出SQL注入

已经开始了学习牛腩新闻发布系统,在讲后台代码的时候讲了一些重构SQLHelper的知识,存储过程和触发器等,这些以前都是接触过的.而SQL注入是以前没有注意过的,所以停下来总结学习一下SQL注入. 首先什么是SQL注入呢? 实战篇~~~~~~~~~~ SQL注入概念 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到

.net dropdownlist 動態顯示,指定字段

dropdownlist 動態顯示,指定字段 this.ddlPermission.Items.Clear(); this.ddlPermission.Items.Insert(0,new ListItem("請選擇","")); this.ddlPermission.Items.Insert(1,new ListItem("管理01",DEP_ID+"01")); this.ddlPermission.Items.Inser

浅入深出ElasticSearch构建高性能搜索架构

浅入深出ElasticSearch构建高性能搜索架构  课程学习地址:http://www.xuetuwuyou.com/course/161 课程出自学途无忧网:http://www.xuetuwuyou.com 一.课程用到的软件 ElasticSearch5.0.0 Spring Tool Suite 3.8.2.RELEASE Maven3.0.5 Spring4 Netty4 Hadoop2.7.1 Kibana5.0 JDK1.8.0_111 二.课程目标 1.快速学习Elastic