sql中如何獲取一條數據中所有字段的名稱和值


declare 
@sql nvarchar(300)

DECLARE @intMinId INT,@intMaxId INT,@intClubID INT,@lngUpdateAmount BIGINT,@filename varchar(50)
--獲取表的列名
SELECT RowID=IDENTITY(INT,1,1),filename
INTO #templist 
FROM (select cl.name as filename from sys.tables AS tb,sys.columns cl where tb.object_id = cl.object_id and tb.name='book') AS A 

SELECT @intMinId =MIN(RowID),@intMaxId=MAX(RowID) 
FROM #templist
--這里必須設置sql為空字符串,不然設置沒數據
set @sql=''
WHILE @intMinId<=@intMaxId
BEGIN
    SELECT @filename = filename
    FROM #templist WHERE RowID=@intMinId
    if(@intMinId=@intMaxId)
        begin
            set @sql = @sql + ' select ' + '''' + @filename + '''' + 'as FileName,' + @filename + ' as value from book where BID=' + '''B001''' 
        end
    else
        begin
            set @sql = @sql+' select '+''''+@filename + '''' + 'as FileName,' + @filename + ' as value from book where BID=' + '''B001''' + ' union all ';
        end
    SET @intMinId=@intMinId+1
END

print @sql
EXEC sp_executesql @sql
drop table #templist

找了好久,沒找到,自己弄了一個,大家有什么更好的寫法,歡迎指教

 原文:https://www.cnblogs.com/lsgsanxiao/p/10897605.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM