我应该如何使用 sql server 中的存储过程将列名存储在变量中?

Posted

技术标签:

【中文标题】我应该如何使用 sql server 中的存储过程将列名存储在变量中?【英文标题】:How should I store the column names in a variable using stored procedure in sql server? 【发布时间】:2016-06-16 19:14:03 【问题描述】:

我有表emp 有列idnamedept,这些列将使用存储过程存储在变量中。

【问题讨论】:

【参考方案1】:

您是在问如何将它们作为参数 (TVP) 传递,还是在问如何在存储过程中创建临时表以协助查询?

这是创建存储过程的一般格式: https://msdn.microsoft.com/en-us/library/ms345415.aspx

就在示例中。在这种情况下,名字和姓氏是参数。

CREATE PROCEDURE HumanResources.uspGetEmployeesTest2 
    @LastName nvarchar(50), 
    @FirstName nvarchar(50) 
AS

【讨论】:

作为参数@HelluvaEngineer【参考方案2】:

方法对吗??

创建过程 get_columns 作为

声明 @e_id int , @e_name nvarchar(20) , @d_id int 开始 SET @e_id =(从 Dim_Employee 中选择 Emp_ID,其中 Emp_Name='Cathy') SET @e_name =(从 Dim_Employee 中选择 Emp_Name,其中 emp_id=101) SET @d_id =(select Dept_ID from Dim_Employee where emp_name='Cathy')

结束 去

【讨论】:

以上是关于我应该如何使用 sql server 中的存储过程将列名存储在变量中?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 SQL Server 中的存储过程中检索参数列表

如何从 SQL Server 存储过程中的 3 列中获取 MAX 值?

如何比较两个表的列并将值插入到基于 SQL Server 中存储过程中的比较的新表中

如何使用 SQL Server 中的存储过程在单个查询中插入多行

如何将 SQL Server 存储过程迁移到 Mysql [关闭]

如何在sql server中创建一个存储过程中的varchar型的输入参数默认值为空