使用特定字符串作为每个列名称的前缀?

2023-12-27

我试图manually将某些行映射到其适当类的实例。我知道我需要使用每个表的每一列,并将一个表中的所有这些列映射到给定的类中。

但是,我想知道是否有更简单的方法可以做到这一点。现在,我有一堂课叫School和一个名为User。每个类都有一个Name属性和其他属性(但“名称”属性是重要的,因为它是两个类的共同名称)。

现在,我正在执行以下操作来绘制它们。

SELECT u.SomeOtherColumn, u.Name AS userName, s.SomeOtherColumn, s.Name AS schoolName FROM User AS u INNER JOIN School AS s ON something

我很想做以下事情,但我不能,因为Name是类之间的共同名称。

SELECT u.*, s.* FROM User AS u INNER JOIN School AS s ON something

然而,这会产生错误,因为它们都有列Name。我可以以某种方式给它们加上前缀吗?比如像这样吗?

u.user_*, s.school_*

那么每个表的每一列都有一个前缀吗?例如user_Name and school_Name?


几年前,我编写了一堆函数和过程来帮助我为 SQL Server 和使用动态 SQL 的应用程序开发自动代码生成例程。我认为以下是对您的情况最有帮助的:

Create FUNCTION [dbo].[ColumnString2]
(
    @TableName  As SYSNAME,       --table or view whose column names you want
    @Template   As NVarchar(MAX), --replaces '{c}' with the name for every column,
    @Between    As NVarchar(MAX)  --puts this string between every column string
)   
    RETURNS NVarchar(MAX) AS
BEGIN
    DECLARE @str As NVarchar(MAX);

    SELECT  TOP 999
        @str = COALESCE(
                @str + @Between + REPLACE(@Template,N'{c}',COLUMN_NAME), 
                REPLACE(@Template,N'{c}',COLUMN_NAME)
                        )
    FROM    INFORMATION_SCHEMA.COLUMNS
    WHERE   TABLE_SCHEMA= COALESCE(PARSENAME(@TableName, 2), N'dbo')
      And   TABLE_NAME  = PARSENAME(@TableName, 1)
    ORDER BY ORDINAL_POSITION

    RETURN @str;
END

这允许您设置表的所有列名的格式或以您想要的任何方式查看。只需向其传递一个表名称和一个模板字符串'{c}'您希望为每列插入列名称的任何地方。它将对中的每一列执行此操作@TableName,并添加@Between串在它们之间。

下面是如何垂直格式化表的所有列名的示例,并以适合包含在 SELECT 查询中的方式使用前缀重命名它们:

SELECT dbo.[ColumnString2](N'yourTable', N'
    {c} As prefix_{c}', N',')

此函数旨在与动态 SQL 一起使用,但您也可以通过在 Management Studio 中执行它并将输出设置为文本(而不是网格)来使用它。然后将输出剪切并粘贴到所需的查询、视图或代码文本中。 (请务必更改文本结果的 SSMS 查询选项以提高“显示的最大字符数”从 256 到最大值 (8000)。如果仍然被切断,那么您可以将此过程更改为一个函数,将每一列输出为单独的行,而不是作为一个大字符串。)

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

使用特定字符串作为每个列名称的前缀? 的相关文章

  • 请求的资源不支持 HTTP 方法“GET”

    我的路线配置正确 并且我的方法具有装饰标签 我仍然收到 请求的资源不支持 HTTP 方法 GET 消息 System Web Mvc AcceptVerbs GET POST System Web Mvc HttpGet public st
  • 更改 Visual Studio 2015 扩展中项目内的文件 ProjectItem 的内容?

    如何更改文件的内容 ProjectItem在给定的范围内Project 我想用字符串替换它的所有内容 这个问题有解决办法吗 我想做一些改变ProjectItem CS 文件 通过使用 VSIX 包 以及我现在看到的唯一一种执行此操作的方法
  • 针对 SQL Server 的 SQL 查询的执行日期时间

    我曾经发现过这个很好的查询here https dba stackexchange com a 135080 43889 我想将查询的执行时间添加到以下查询中 USE master go SELECT sdest DatabaseName
  • C# 动态 Linq 变量Where 子句

    我正在按照 Scott Gu 的文章创建动态 LINQhttp weblogs asp net scottgu archive 2008 01 07 dynamic linq part 1 using the linq dynamic qu
  • 将 gcov 与 CMake/CDash 结合使用的详细指南?

    我在我的项目中使用 CMake 并设置了 cdash 服务器以进行连续 夜间构建 一切运行良好 通过设置 crontab 我们可以将每小时 每晚的构建 测试结果自动上传到我们的 cdash 服务器 我的下一步是将测试覆盖率报告添加到构建中
  • 如何在Qt无框窗口中实现QSizeGrip?

    如何使用 Qt 无框窗口实现 QSizeGrip 代码会是什么样的 您只需在布局内窗口的一角添加 QSizeGrip 即可使其保持在该角落 QDialog dialog new QDialog 0 Qt FramelessWindowHin
  • string.empty 和 string[0] == '\0' 之间的区别

    假设我们有一个字符串 std string str some value is assigned 有什么区别str empty and str 0 0 C 11 及更高版本 string variable 0 如果字符串为空 则需要返回空字
  • 是否有更好(更简单)的方法来获取特定域 SID?

    我被指派修改 WinForms 应用程序 主要检查登录用户是否属于特定域 这是我到目前为止所想出的 byte domainSid var directoryContext new DirectoryContext DirectoryCont
  • C# 列表框 ObservableCollection

    我正在尝试使用 ListBox DataSource ObservableCollection 但是我不知道如何在 OC 更新时让列表框自动更新 我可以在 OC 上挂接 CollectionChanged 事件 但是我需要对列表框执行什么操
  • 接口中的私有成员

    是否可以在 NET 接口中创建私有成员 我听说现在可以了 但我的 IDE 拒绝了 public interface IAnimal void SetDefaultName string name ChangeName name privat
  • MSBuild 将动态生成的文件复制为项目依赖项的一部分

    我有一个自定义 msbuild 任务 它正在生成一些输出文件到 ProjectA 的输出目录 TargetDir 当前的代码是这样的
  • T-SQL:检查电子邮件格式

    我有这样的场景 我需要物理数据库中的数据完整性 例如 我有一个变量 email address VARCHAR 200 我想检查一下值是否为 email address是电子邮件格式 有人知道如何检查 T SQL 中的格式吗 非常感谢 我使
  • C#中如何将委托转换为对象?

    我正在使用反射类来调用其他 dll 上的一些方法 方法的参数之一是委托类型 我想通过使用反射来调用这个方法 所以我需要将函数参数作为对象数组传递 但我找不到任何关于 如何将委托转换为对象 提前致谢 委托是一个对象 只需像平常一样创建预期的委
  • 通过 Nuke.Common/NuGet.CommandLine 部署 NuGet 包时如何通过 Azure Auth

    我正在尝试通过 Azure DevOps 上的 Nuke 和 CI CD 自动执行 NuGet 包更新 一切都构建得很好 但在 PushNuGet 步骤中 该过程尝试通过弹出窗口向 Azure 进行身份验证 这显然从未在 in devops
  • C++ 静态工厂构造函数

    我正在进行模拟 它需要创建多个相当相似的模型 我的想法是有一个名为 Model 的类并使用静态工厂方法来构造模型 例如 模型 createTriangle or 模型 createFromFile 我从以前的 java 代码中汲取了这个想法
  • C中的pipe()和fork()

    我需要创建两个子进程 一个子进程需要运行命令 ls al 并将其输出重定向到下一个子进程的输入 而下一个子进程又将对其输入数据运行命令 sort r n k 5 最后 父进程需要读取该数据 已排序的数据 并将其显示在终端中 终端中的最终结果
  • TypeScript 中 C# 类虚拟成员的等效项

    因此 在 C 中 当我创建模型类和延迟加载内容时 我会执行以下操作 public int User ID get set public int Dept ID get set 然后在我的班级稍远一点的地方 我像这样弹出我的虚拟 public
  • 任何浮点密集型代码是否会在任何基于 x86 的架构中产生位精确的结果?

    我想知道使用浮点运算的 C 或 C 代码是否会在任何基于 x86 的体系结构中产生位精确的结果 无论代码的复杂性如何 据我所知 自 Intel 8087 以来的任何 x86 架构都使用准备处理 IEEE 754 浮点数的 FPU 单元 并且
  • 为什么没有参数的函数(与实际函数定义相比)可以编译?

    我刚刚看到某人的 C 代码 我很困惑为什么要编译它 有两点我不明白 The 函数原型与实际函数定义相比没有参数 中的参数函数定义没有类型 include
  • GetActiveObject() 与 GetObject() -- MK_E_UNAVAILABLE 错误

    All 我在将一些 VBA 代码转换为 C 时遇到一些问题 我们有一个充当本地 COM 服务器的第 3 方应用程序 在我们使用的VBA代码中获取对象 获取对现有对象的引用 e g Set appHandle GetObject ProgId

随机推荐

  • NodeJS:如何从文件中读取(最多)前 N 个字节?

    在 NodeJS 中 从文件中最多读取前 N 个字节的简洁 健壮且优雅的方法是什么 如果数据较少 那么我不希望抛出错误 如果有更多数据 那么我不希望将其读入内存 理想情况下无需安装外部软件包 也许涉及自 NodeJS 12 以来似乎是新的
  • 服务器在rails 3生产环境中找不到公用文件夹

    我正在使用最新的 Rails 3 beta 该应用程序在开发模式下工作正常 但是当我通过以下方式在生产模式下启动服务器时rails server e production 似乎public找不到文件夹 我收到如下错误消息 ActionCon
  • 在PHP中接收UDP数据包数据报

    我正在用 php 为 GPS 跟踪系统构建监听服务器 GPS 通过 UDP 数据包发送数据 我可以通过运行以下脚本来显示数据 然而 实际数据以符号形式出现 所以我猜我错过了转换 Reduce errors error reporting E
  • 以不同顺序遍历 3D 数组

    我有一个 3D 节点数组 我想通过从数组的中间节点开始 并向角落移动来遍历它 就像这样 and So on but for visualization purposes I ve shown in 2D but actually it is
  • swift xcode 从播放器列表中播放声音文件

    我正在寻找一种快速编码 可以从播放器列表中播放声音 而不是将声音作为资源添加到您的项目中 我主要找到了用法 NSURL fileURLWithPath NSBundle mainBundle pathForResource sound na
  • 在ios中使用Quartz 2d进行注释(注释、评论)

    我正在为 iPad 做基于 PDF 的应用程序 它支持缩略图视图 徒手注释和注释 Notes 我和我在网上搜索了很多 但没有找到任何使用 Quartz 2d 在 PDF 上进行注释的相关答案 我们可以使用以下方法获取 PDF 页面信息 CG
  • HID 兼容设备不会在 ChromeOS 上使用 chrome.hid API 进行枚举

    使用 USB HID 传感器我似乎只能用chrome usb API https developer chrome com apps usb在 Chrome 操作系统上 在 OS X 上我可以枚举chrome hid API https d
  • 正则表达式删除每行开头的空格?

    我想删除每行开头的空格 我每行都有数据 开头有一组空格 因此数据出现在中间 我想删除每行开头的空格 tmp tmp replace lt gt gt g 我怎样才能添加 s条件成那个replace 要删除所有前导空格 str str rep
  • 从哪里开始使用 API [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我以前从未使用过 API 并且在 HTML 和 CSS 之外几乎没有编程经验 并且我正在努力寻找任何清晰的教程或解释 所有 API 的工作方
  • 模拟函数调用实际函数

    我有 cassandra python 驱动程序的代码 from cassandra cqlengine management import sync table def sync my tables print sync table pr
  • 应该由 Promise 调用同步代码。然后创建一个新的 Promise

    我已经实现了一些代码 其中异步代码后面跟着一些同步函数 例如 function processSomeAsyncData asyncFuncCall then syncFunction catch error 如果我理解正确的话then也是
  • 套接字丢失数据

    我正在尝试编写 Java 代码来从流式 HTTP 连接接收数据 我想调试针对 spring websocket 服务器运行 Sockjs XHR 流时遇到的问题 我使用一些非常简单的代码来连接 URI uri The server Sock
  • 从 Android 中列表视图中放置的 EditText 获取值

    我不知道如何获取列表视图中的编辑文本值位置 我使用单工适配器用数据填充了列表视图 有人会给出从列表中获取 edittext 值的示例代码吗 for int i 0 i lt ListSortOrder getAdapter getCount
  • C++ 返回一行

    我正在编写一个多行系统 如下所示 string readLines string x string temp a vector
  • 如何在 FPDF 中设置下边距

    我最近深入研究了 FPDF 但我似乎不明白的是 为什么没有办法设置底部边距 有一些功能可以设置顶部 左侧和右侧的边距 但不能设置底部的边距 我现在假设我误解了 FPDF 工作原理的一些基本和概念性内容 但我不知道那可能是什么 所以要减少它
  • 如何从 JavaFX 中的 SceneBuilder 访问 UI 组件

    重复并已解决 请参阅下面的答案 我正在 JavaFX 中迈出第一步 似乎很难使用 SceneBuilder 我已经习惯了 Android 和 QtCreator 在我看来 访问 UI 组件要容易得多 就像是findViewById R id
  • 在 UI 中为控制器内的操作添加嵌套分组部分

    动作分组中是否可以有小节 我们目前使用基于控制器的区分来对功能进行分组 但托管大量控制器并且可以使用进一步的嵌套 换句话说 我知道操作可以按以下方式分组 排序 但可以多次分组 c GroupActionsBy apiDesc gt apiD
  • 如何使用 R 从需要 cookie 的 SSL 页面下载压缩文件

    我正在尝试从 https 页面下载一个文件 该页面需要按下 我同意 按钮 然后存储 cookie 如果这个答案在某个地方很明显 我很抱歉 当我直接在 Chrome 中打开网页并单击 我同意 时 文件开始自动下载 我尝试复制这个例子 http
  • 是否可以在服务器端缓存一个asp页面?

    假设您有一个大型复杂的索引页面 其中显示新闻文章和内容 它不会经常改变 您能否以某种方式将其缓存在服务器端 这样请求就不会强制服务器在每次有人访问它时动态生成整个页面 或者 ASP NET 会自动执行此操作吗 如果是这样 它如何知道某些内容
  • 使用特定字符串作为每个列名称的前缀?

    我试图manually将某些行映射到其适当类的实例 我知道我需要使用每个表的每一列 并将一个表中的所有这些列映射到给定的类中 但是 我想知道是否有更简单的方法可以做到这一点 现在 我有一堂课叫School和一个名为User 每个类都有一个N