SQL 根據表獲取字段字串

2022-10-10 23:48:18 字數 1744 閱讀 7341

sqlserver查詢單個資料表所有欄位名組合成的字串指令碼

--sqlserver查詢單個資料表所有欄位名組合成的字串指令碼

--應用場合: 用於生成sql查詢字串中select 欄位名列表1 from table group by 欄位名列表2 中的欄位名列表1和欄位名列表2部分

--定義資料表名稱變數

declare @tablename nvarchar(250)

set @tablename='您的資料表名稱' --這裡修改成您要查詢的資料表名稱

--定義列總數變數

declare @totalcolumns int 

select @totalcolumns=count(name) from syscolumns where id=object_id(@tablename) 

print '資料表'+@tablename+'字段總數為:'+convert(nvarchar(20),@totalcolumns)

--定義所有欄位名稱字串變數

declare @columnsstring nvarchar(4000)

set @columnsstring=''

--定義游標中輸出的欄位名變數

declare @columnname nvarchar(255)

--通過游標讀取指定資料表的所有字段

--宣告游標mycursor

declare mycursor cursor for select name from syscolumns where id=object_id(@tablename)  order by colid

--開啟游標

open mycursor

--從游標裡取出資料賦值到我們剛才宣告的欄位名變數中

fetch next from mycursor into @columnname

--如果游標執行成功  

while (@@fetch_status=0) 

begin 

--顯示出我們每次用游標取出的值 

set @columnsstring=@columnsstring+','+@columnname

--用游標去取下一條記錄

fetch next from mycursor into @columnname

end--關閉游標

close mycursor 

--撤銷游標

deallocate mycursor

--如果末尾包含逗號則去除

if left(@columnsstring,1)=',' set @columnsstring=substring(@columnsstring,2,len(@columnsstring)-1)

print @columnsstring

--多表聯合查詢

declare @groupcolumnsstring nvarchar(4000) --如果顯示不全,這裡自己修改更大的數字

declare @prefixstring nvarchar(255)

set @prefixstring=@tablename --這裡可以修改成你想要的字串

set @groupcolumnsstring=replace(@columnsstring,',',','+@prefixstring+'.')

set @groupcolumnsstring=@prefixstring+'.'+@groupcolumnsstring

print @groupcolumnsstring

sql根據表名獲取欄位及對應說明

複製 如下 select tablename object name c.object id columnsname c.name,description ex.value,columntype t.name,length c.max length from 程式設計客棧 sys.columns c...

獲取字串

package cn.itcast.day08.demo02 public int length 獲取字串當中含有的字元個數,拿到字串長度。public string concat string str 將當前字串和引數字串拼接成為返回值新的字串。public char charat int ind...

sql 擷取字串

sql 擷取字串 a.擷取從字串左邊開始n個字元 declare s1 varchar 100 select s1 select left s1,4 顯示結果 http b.擷取從字串右邊開始n個字元 例如取字元www.163.com declare s1 varchar 100 select s1...