查詢未知名字段的SQL

--知道數據表中一個字段的名字,但需要查詢的是數據庫裏除去這個字段的所有數據???

SQL語句:

declare @sql varchar(2000)

set @sql=''

select @sql = @sql +','+ name from syscolumns where id=object_id('表名') and name <>'字段名'

set @sql=stuff(@sql,1,1,'')

exec('select '+@sql+' from 表名')

1、聲明瞭局部變量 @sql

2、獲取數據表的除指定字段外的所有字段名。

 從數據表object_id('表名')中的列syscolumns中查詢所有的字段名name

3、整理所查詢的字段名,如去除查詢結果中的多餘的逗號…

 Object_id(‘object’),其中’object’是要使用的對象,object的數據類型爲char或nchar。如果object的數據類型是char,那麼隱性將其轉換成nchar,返回int類型的值

Stuff函數將字符串插入另一字符串。它在第一個字符串中從開始位置刪除指定長度的字符;然後將第二個字符串插入第一個字符串的開始位置

name爲syscolumns系統表中的列名,表示列名或過程參數的名稱

id爲syscolumns系統表中的列名,表示該列所屬的表對象ID,或與該參數關聯的存儲過程ID

注:詳細說明可參見SQL Server的Transact-SQL幫助

發佈了3 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章