- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
-
- -- =============================================
- -- Author: Insus.NET
- -- Create date: 2019-05-21
- -- Update date: 2019-05-21
- -- Description: 动态获取数据表或临时表的列名
- -- =============================================
- CREATE PROCEDURE [dbo].[usp_Retrieve_Column_Name]
- (
- @TABLE_CATALOG SYSNAME,
- @TABLE_SCHEMA SYSNAME,
- @TABLE_NAME SYSNAME
- )
- AS
- BEGIN
- DECLARE @query_sql NVARCHAR(MAX) = N''
- 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))
- SET @query_sql = N'SELECT [name] FROM [tempdb].[sys].[columns] WHERE object_id = object_id('''+ @TABLE_CATALOG + N'.'+ @TABLE_SCHEMA + N'.' + @TABLE_NAME +''')'
- ELSE
- SET @query_sql = N'SELECT [name] FROM [sys].[columns] WHERE object_id = object_id('''+ @TABLE_CATALOG + N'.'+ @TABLE_SCHEMA + N'.' + @TABLE_NAME +''')'
- EXECUTE sp_executesql @query_sql
- END
- GO