工作中,經常會遇到將某個數據表的所有或大部份欄位讀取出來情況,比如說跨資料庫進行表更新或插入等。假如欄位名一個一個地敲的話,一是效率低,二是會有漏掉的情況。 針對此種情況,處理的方法有很多種,比如新建一個視圖,在裡面錄入SELECT * FROM 表名,系統會自動將星號改成欄位名(SQL SERVE ...
工作中,經常會遇到將某個數據表的所有或大部份欄位讀取出來情況,比如說跨資料庫進行表更新或插入等。假如欄位名一個一個地敲的話,一是效率低,二是會有漏掉的情況。
針對此種情況,處理的方法有很多種,比如新建一個視圖,在裡面錄入SELECT * FROM 表名,系統會自動將星號改成欄位名(SQL SERVER 2005及以上版本)。
在這裡,介紹另外一種方法,通過變理獲取整個數據表的所有欄位名,以PP_MO為例:
DECLARE @STRSQL VARCHAR(2000) SET @STRSQL='' SELECT @STRSQL=NAME+','+@STRSQL FROM SYSCOLUMNS WHERE OBJECT_NAME(ID)='PP_MO' PRINT LEFT(@STRSQL,LEN(@STRSQL)-1)
結果如下: