Bootstrap

Sql server exec 动态列 创建临时表

有的时候,我们需要创建列是动态生成的表,这时我们就需要借助exec执行sql 语句来动态创建临时表。

--这里一定要用max,8000可能有问题
DECLARE @tmpSql VARCHAR(MAX),@CreatSql VARCHAR(max)
SELECT @tmpSql = ISNULL(@tmpSql + ' FLOAT,','') + DefectCode
FROM #tmpDefactCodes
SELECT @tmpSql

--这里一定要创建全局临时表
SELECT  @CreatSql = 'CREATE TABLE ##tmpDefactTable('+@tmpsql+' FLOAT)'
PRINT @CreatSql
EXEC(@CreatSql)
SELECT * FROM ##tmpDefactTable
DROP TABLE ##tmpDefactTable

;