【问题标题】:Get the Dynamic Script获取动态脚本
【发布时间】:2018-12-27 07:20:47
【问题描述】:

tableName'sts.students'
columnname'studentid,studentfname,studentlname'

我想获取动态脚本,使用 columnname 和 tableName 将数据插入新表“tabdata”。我能怎么做 ?

【问题讨论】:

标签: tsql


【解决方案1】:

对不起,我没能清楚地理解你。你想要这个吗?

Create table tabdata(header1 varchar(100), header2 varchar(100),
header3 varchar(100),header4 varchar(100),header5 varchar(100))

declare @tableName varchar(100)
declare @columnname varchar(max)
declare @target_columnname varchar(max)
declare @sql varchar(max)

set @tableName='sts.students' 

set @columnname='studentid,studentfname,studentlname' 

set @target_columnname= (stuff((select ',' +[Name] from (
Select row_number()over(order by Name)as rn ,Name
FROM SysColumns Where id=Object_Id('tabdata')) a 
where rn<=len(@columnname)-len(replace(@columnname, ',', ''))+1
FOR XML PATH('')),1,1,''))

SELECT @sql = 'INSERT INTO tabdata(' +
    STUFF ((
        SELECT ',' + @target_columnname + ''
        FOR XML PATH('')), 1, 1, '') +
    ') select ' +@columnname +' from '+@tableName
print (@sql)
exec(@sql)

/*
INSERT INTO tabdata(header1,header2,header3) select studentid,studentfname,studentlname from sts.students
*/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    • 2019-05-15
    • 1970-01-01
    相关资源
    最近更新 更多