我需要运行一些SQL,它会从表中返回我的列。
我需要在INSERT语句中使用这些列。
我可以跑:
select *
from information_schema.columns
where table_name = 'tableName'
但是我需要打印这样的东西:
[table.custid], [table.address], [table.name]
答案 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)