如何打印要在INSERT查询中使用的表列

时间:2015-04-09 12:04:04

标签: sql sql-server

我需要运行一些SQL,它会从表中返回我的列。

我需要在INSERT语句中使用这些列。

我可以跑:

select * 
from information_schema.columns 
where table_name = 'tableName'

但是我需要打印这样的东西:

[table.custid], [table.address], [table.name]

2 个答案:

答案 0 :(得分:4)

我认为您可能需要使用它们来使用动态sql,您可以获得所需格式的列列表:

DECLARE @ColNames VARCHAR(1000) 
SELECT @ColNames = COALESCE(@ColNames+', ', '') + QUOTENAME('tableName.'+NAME,'[')
FROM SYS.COLUMNS
WHERE OBJECT_id = OBJECT_id('tableName')
SELECT @ColNames

编辑摘要:将tablename前缀添加到问题所需的列

答案 1 :(得分:1)

试试这个

SELECT * FROM SYS.COLUMNS 
WHERE object_id = OBJECT_ID('dbo.TableName') 

DECLARE @sql as VARCHAR(8000)
SET @sql = ' '

SELECT @sql += '[table.'+[Name] + '],' FROM SYS.COLUMNS 
WHERE object_id = OBJECT_ID('dbo.TableName') 

PRINT(@sql)