经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MS SQL Server » 查看文章
动态获取数据表或临时表列名
来源:cnblogs  作者:Insus.NET  时间:2019/5/22 8:46:51  对本文有异议

先参考这篇《获取MS SQL TABLE列名列表https://www.cnblogs.com/insus/p/4835554.html

 

现在,把它改写为存储过程,动态获取任一数据表列名或者是临时表的列名。

 

  1. SET ANSI_NULLS ON
  2. GO
  3. SET QUOTED_IDENTIFIER ON
  4. GO
  5.  
  6. -- =============================================
  7. -- Author: Insus.NET
  8. -- Create date: 2019-05-21
  9. -- Update date: 2019-05-21
  10. -- Description: 动态获取数据表或临时表的列名
  11. -- =============================================
  12. CREATE PROCEDURE [dbo].[usp_Retrieve_Column_Name]
  13. (
  14. @TABLE_CATALOG SYSNAME,
  15. @TABLE_SCHEMA SYSNAME,
  16. @TABLE_NAME SYSNAME
  17. )
  18. AS
  19. BEGIN
  20. DECLARE @query_sql NVARCHAR(MAX) = N''
  21. IF EXISTS(SELECT TOP 1 1 FROM [tempdb].[dbo].[sysobjects] o WHERE o.[xtype] IN ('U') AND o.[id] = object_id(@TABLE_CATALOG + N'.'+ @TABLE_SCHEMA + N'.' + @TABLE_NAME))
  22. SET @query_sql = N'SELECT [name] FROM [tempdb].[sys].[columns] WHERE object_id = object_id('''+ @TABLE_CATALOG + N'.'+ @TABLE_SCHEMA + N'.' + @TABLE_NAME +''')'
  23. ELSE
  24. SET @query_sql = N'SELECT [name] FROM [sys].[columns] WHERE object_id = object_id('''+ @TABLE_CATALOG + N'.'+ @TABLE_SCHEMA + N'.' + @TABLE_NAME +''')'
  25. EXECUTE sp_executesql @query_sql
  26. END
  27. GO
Source Code

 

以上代码中,有判断临时表是否存在,这个判断方法,可以参考这篇《判断临时表是否存在https://www.cnblogs.com/insus/p/10899365.html

 

举例演示,先来一个获取临时表的列名:

 

另一个例子,是获取非临时表的列名:

 

原文链接:http://www.cnblogs.com/insus/p/10899239.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号