27,580
社区成员
发帖
与我相关
我的任务
分享
CREATE TABLE tb_def([name] NVARCHAR(500),fname VARCHAR(200))
INSERT INTO tb_def
SELECT N'报销日期','fielddat1' UNION
SELECT N'凭证号','fieldstr2' UNION
SELECT N'附件数','fieldint3' UNION
SELECT N'制单人','fieldstr4' UNION
SELECT N'报销事由','longstr1' UNION
SELECT N'费用部门','liststr1' UNION
SELECT N'时间','listdat2' UNION
SELECT N'摘要','liststr3'
CREATE TABLE tb_data(fieldstr1 DATETIME,fieldstr2 VARCHAR(500),fieldint3 INT,fieldstr4 VARCHAR(500),longstr1 VARCHAR(max),liststr1 VARCHAR(100),liststr3 VARCHAR(500))
INSERT INTO tb_data SELECT GETDATE(),'aaaa',1,'a',3,'e','f'
DECLARE @sql NVARCHAR(max),@tablename VARCHAR(200)='tb_data'
SELECT @sql=ISNULL(@sql+',','')+QUOTENAME(c.name)+' AS '+ ISNULL(tb_def.name,c.name) FROM sys.columns AS c
LEFT JOIN tb_def ON c.name=tb_def.fname
WHERE OBJECT_NAME(c.object_id)=@tablename
PRINT @sql
SET @sql='SELECT '+@sql+ ' FROM '+@tablename
EXEC(@sql)
/*
附件数 fieldstr1 凭证号 制单人 费用部门 摘要 报销事由
1 2016-12-20 12:39:44.487 aaaa a e f 3
*/