动态 SQL Server 查询

2024-04-12

我正在存储过程中编写动态插入查询。我收到列名称作为我的存储过程的参数。

例如,我有一个Employee表与EmployeeId and EmployeeName列。我需要追加EMP_将数据插入到每个员工姓名之前Department表来自Employee table.

非动态查询看起来像这样。

 INSERT INTO Department(EmployeeId, EmployeeName)
     SELECT 
         EmployeeId, 'EMP_' + EmployeeName
     FROM 
         Employee

如果我写一个动态插入

 SET @SqlCommand =
          'INSERT INTO ' + @DepartmentTable + '(' + @EmployeeIdColumn + ',' + @EmployeeNameColumn + ')' +
          'SELECT ' + @EmployeeIdColumn + ',''EMP_''' + @EmployeeNameColumn + '''' +     
          'FROM ' +
              @EmployeeTable + ' WTB '  

        EXEC sp_executesql
        @stmt        = @SqlCommand 

问题是,对于EmployeeName列中,它插入“EMP_EmployeeName”而不是实际的员工姓名。我尝试在前后加上引号EmployeeNameColumn,但没有成功。我该如何修复它?


你只需要一个+ after EMP_'',然后将其删除' WTB '。我还修复了一些空格:

SET @SqlCommand =
'INSERT INTO ' + @DepartmentTable + ' (' + @EmployeeIdColumn + ',' + @EmployeeNameColumn + ')' +
' SELECT ' + @EmployeeIdColumn + ',''EMP_''+' + @EmployeeNameColumn +      
' FROM ' + @EmployeeTable + ' WTB ' 

If you PRINT @SqlCommand你会得到这样的东西:

INSERT INTO Department (EmpId,EmpName) SELECT EmpId,'EMP_'+EmpName FROM Employee WTB 

还有一点要注意:更好地使用报价名称 https://msdn.microsoft.com/en-us/library/ms176114.aspx带有表/列名称。这将有助于避免列中名称中包含空格的情况,例如“员工姓名”:

SET @SqlCommand =
'INSERT INTO ' + QUOTENAME(@DepartmentTable) + '(' + QUOTENAME(@EmployeeIdColumn) + ',' + QUOTENAME(@EmployeeNameColumn) + ')'+
' SELECT ' + QUOTENAME(@EmployeeIdColumn) + ',''EMP_''+' + QUOTENAME(@EmployeeNameColumn) + 
' FROM ' + QUOTENAME(@EmployeeTable) + ' WTB '

To get:

INSERT INTO [Department]([EmpId],[EmpName]) SELECT [EmpId],'EMP_'+[EmpName] FROM [Employee] WTB 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

动态 SQL Server 查询 的相关文章

  • Extbase - 从查询中获取创建的sql

    我想从我的typo3 扩展中获取一些数据库表 该扩展基于 extbase 查询总是不返回任何内容 但数据存在 我试过这个 query this gt createQuery query gt statement SELECT FROM my
  • TSQL - 生成文字浮点值

    我理解比较浮点数时遇到的许多问题 并对它们在这种情况下的使用感到遗憾 但我不是表格作者 只有一个小障碍需要克服 有人决定使用浮点数 就像您期望使用 GUID 一样 我需要检索具有特定浮点值的所有记录 sp help MyTable Colu
  • 如何连续添加起始行和下一行的值

    我只想创建一个 sql 查询 结果就像图片上的那样 类似于 SQL 中的斐波那契数列 Ex Column 1 10 则 Result 列的值为 Result 10 因为这是第一行 然后假设column1第二行的值为50 那么Result第二
  • SQL Server - 将行连接到逗号分隔的列表中

    假设我有一个临时表 如下所示 Id Value 1 1 1 2 1 3 2 1 2 2 我希望我的桌子是这样的 Id ValueList 1 1 2 3 2 1 2 所以基本上我需要将我的值分组为逗号分隔的列表 我已经尝试过以下操作 SEL
  • hive sql查找最新记录

    该表是 create table test id string name string age string modified string 像这样的数据 id name age modifed 1 a 10 2011 11 11 11 1
  • java库维护数据库结构

    我的应用程序一直在开发 所以偶尔 当版本升级时 需要创建 更改 删除一些表 修改一些数据等 通常需要执行一些sql代码 是否有一个 Java 库可用于使我的数据库结构保持最新 通过分析类似 db structure version 信息并执
  • SQL Server 2008 错误 233

    我正在使用以下 sql 脚本在 SQL Server 2008 中创建新登录名 CREATE LOGIN xyz WITH PASSWORD xyz DEFAULT DATABASE master DEFAULT LANGUAGE us e
  • 分组和切换列和行

    我不知道这是否会被正式称为枢轴 但我想要的结果是这样的 Alex Charley Liza 213 345 1 23 111 5 42 52 2 323 5 23 1 324 5 我的输入数据采用这种形式 Apt Name
  • 根据由另一列分组的不同列的最大值获取值[重复]

    这个问题在这里已经有答案了 我想根据由另一列分组的不同列的最大值来获取列的值 我有这张表 KEY NUM VAL A 1 AB B 1 CD B 2 EF C 2 GH C 3 HI D 1 JK D 3 LM 并想要这样的结果 KEY V
  • 使用联接更新表?

    我正在尝试使用表 B 中的数据更新表 A 我以为我可以做这样的事情 update A set A DISCOUNT 3 from INVOICE ITEMS A join ITEM PRICE QUNTITY B on A ITEM PRI
  • 如何删除 Sql Server 2005 中存在的临时 SP

    我的问题很简单 如何删除临时存储过程 如果存在 这是因为当我在脚本中创建临时 SP 时 它会在第二次运行时抛出类似 数据库中已存在名为 sp name 的对象 的错误 我不想向用户显示此消息 请帮我 您的解决方案受到高度赞赏 临时进程的删除
  • NVARCHAR 变量在Where 子句中不起作用

    在 SQL Server 我想是 2018 我不知道如何判断 中 我的变量不起作用WHERE的条款NVARCHAR 比较应该返回值 但它什么也没返回 如果我只是手动输入声明的文本 它会突然起作用并返回值 没有任何逻辑原因应该有任何不同 类型
  • 如何将SQL数据加载到Hortonworks中?

    我已在我的电脑中安装了 Hortonworks SandBox 还尝试使用 CSV 文件 并以表结构的方式获取它 这是可以的 Hive Hadoop nw 我想将当前的 SQL 数据库迁移到沙箱 MS SQL 2008 r2 中 我将如何做
  • 在 C# 中执行基于存储过程的查询后,如何重新使用 CommandText 的 SqlCommand 对象?

    我有一个示例代码 aCommand CommandType CommandType StoredProcedure aCommand Parameters AddWithValue book id bookID aCommand Param
  • 3 个表的 SQL 查询(或联接)

    第一次在 Stack Overflow 上问问题 很棒的资源 但是只有一件事真正让我作为 SQL 新手感到困惑 我有三个表 我想获取与鲍勃的学生相关的所有导师的姓名 表 1 教师 ID Name 1 Bob 表 2 学生 STUDENT I
  • 如何用约束标记一大组“传递群”?

    在 NealB解决方案之后进行编辑 与以下解决方案相比 NealB的解决方案非常非常快任何另一个 https stackoverflow com q 18033115 answers and 提出了关于 添加约束以提高性能 的新问题 Nea
  • 使用存储过程中的 Select 查询将单个变量分配给多行

    我的查询是使用 Select 将单个变量分配给多行 存储过程中的查询 例如 我从 Employee 表中获取 10 个 比如 1 到 10 个员工 ID 声明 id int select id EmpId from Employee sel
  • WHERE NOT EXIST 附近的语法错误

    我在堆栈中搜索 但没有一个达到最终答案 我的查询是这样的 INSERT INTO user username frequence autoSend VALUES feri2 3 1 WHERE NOT EXISTS SELECT FROM
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • 更改mysql数据库表中的日期格式

    大家早上好 只是一个简单的问题 在我现有的 MySql 数据库中 我几乎没有包含日期 的列 目前这些是年 月 日格式 但现在我需要将其全部更改为年 月 日格式 我试过了select date format curdate d m Y 但它不

随机推荐

  • 从 Intellij 在远程主机上部署/运行 jvm 应用程序

    是否可以在 intellij 的远程服务器上部署 运行 出于测试目的 独立的 Java 应用程序 我并不是要连接到已经运行的 JVM 而是要从 intellij 在远程主机上启动一个新的 JVM 就像它在我的本地计算机上运行一样 目前没有内
  • python:如何重建需要编译的依赖项

    由于存在大量依赖项 我的 python 应用程序的虚拟环境的安装在部署过程中花费了太多时间 为了最大限度地减少时间 我想将驻留在 git 虚拟环境中的依赖项包括在内 以便它们在部署时就已经存在 主要问题是 由于机器之间的架构差异 需要重建与
  • 角度/形式整数验证器

    如何验证我的数字输入字段仅接受整数而不接受任何类型的小数 逗号 点 Code Component import FormGroup FormBuilder Validators from angular forms this savingD
  • NPM 如何更新/升级传递依赖?

    我在我的节点服务器中使用express v4 16 4 它已引入 cookie signature v1 0 6 我想将 cookie signature 升级到 v1 1 0 因为它有我需要的修复 有什么方法可以做到这一点 我认为我不应该
  • Charles Proxy:映射到 GET 请求而不是 OPTIONS [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有办法根据特定请求在 Charles 中进行本地映射 我的 API 发出 OPTIONS 请求 然后发出 GET 请求 当我在 Cha
  • 如何在React中添加事件监听器?

    我正在与用户和代理创建一个聊天应用程序 当代理在他单独的 Rainbow UI 上回复时 我试图检索消息 问题是这只能通过事件监听器来完成 如文档中所示 有人可以帮助我吗 我可以在哪里以及如何帮助我document addEventList
  • 发布 Google Maps API v2 Android 的流式传输方向

    因此 我的应用程序的一部分构建了一个导航方向字符串 然后尝试解析 JSON 并在地图上绘制折线路线 我首先使用位置变量或区域设置常量构建字符串 我最终得到类似的东西 https maps googleapis com maps api di
  • Python 中是否有类似于 Java 的 Thread.yield() 的东西?这还有道理吗?

    我想告诉我的 Python 线程让出 从而避免不必要地占用 CPU 在 Java 中 您可以使用Thread yield 功能 我认为Python中没有类似的东西 所以我一直在使用time sleep t where t 0 00001 F
  • setTimeout 和 jQuery:未捕获 RangeError:超出最大调用堆栈大小 [重复]

    这个问题在这里已经有答案了 我试图在页面加载时调用我的类 并每隔 X 秒重新加载结果 但是在 setTimeout 教程之后 jquery 似乎给我抛出了一个错误 考虑到它是无语法的 我不明白 未捕获的范围错误 超出最大调用堆栈大小 var
  • ORM 映射中的“拥有方”是什么?

    具体是做什么的拥有方意思是 一些映射示例的解释是什么 一对多 一对一 多对一 以下文字摘录自描述 一对一在 Java EE 6 文档中 你可以看到这个概念拥有方 in it 定义一个单值关联 另一个具有一对一关系的实体 多重性 通常情况下不
  • 什么时候右移操作>>移位符号位什么时候不呢?

    我的问题是为什么a gt gt 1移位符号位 但不移位 a 0xaaaaaaaa gt gt 1 代码片段 int a 0xaaaaaaaa std cout lt lt sizeof a lt lt std endl getBits a
  • 当异步代码尝试在已经执行的线程上恢复时会发生什么?

    我觉得这个问题的答案是因为我对线程如何工作有一个不正确的概念 但这里是 private void button1 Click object sender EventArgs e this TestMethodAsync No await i
  • Rails 中的 OAuth - google、twitter、facebook,像 stackoverflow 登录一样连接登录

    Rails 有其余的 autho 插件 效果很好 但是有没有一个解决方案可以合并 twitter facebook google yahoo 等 似乎每个人都有自己的插件和需求 混合它们将会变得一团糟 这是为了让用户登录 就像 Stacko
  • 什么是春露?

    尽管我读过所有内容 但我仍然不明白什么春罗 https projects spring io spring roo 实际上is 那就是after阅读第一章Spring Roo 的实际应用 什么是 Spring Roo https liveb
  • htmlentities 和 é (e锐利)

    我的 PHP 有问题htmlentities和 字符 我知道这是我忽略的某种编码问题 所以希望有人能看到我做错了什么 跑直道htmlentities 没有按预期返回正确的代码 或者 233 or eacute 我尝试过强制将字符集设置为 U
  • 如何在reactjs中将XML转换为JSON?

    如何使用reactjs将XML文档转换为JSON 我收到如下所示的回复 我尝试了很多事情但仍然一无所获 import React useEffect from react function Api useEffect gt fetch au
  • 将变量的值传递给 angularjs 指令模板函数

    我试图将 scope 的变量传递给指令 但它不起作用 我正在捕获模板函数中的变量 app directive customdir function return restrict E template function element at
  • ActiveRecord::Save 的参数数量错误(0 代表 1)

    我使用 Rails 4 时遇到此错误 wrong number of arguments 0 for 1 在控制器中运行此代码时 class CommentsController lt ApplicationController def c
  • PHP 解析错误:语法错误,CodeIgniter 视图中出现意外的文件结尾 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在得到
  • 动态 SQL Server 查询

    我正在存储过程中编写动态插入查询 我收到列名称作为我的存储过程的参数 例如 我有一个Employee表与EmployeeId and EmployeeName列 我需要追加EMP 将数据插入到每个员工姓名之前Department表来自Emp