我試圖「描述」一個表格,我在StackOverflow上有不同的帖子,但是當我運行sp_columns時,沒有顯示任何結果或行。爲什麼sp_columns不返回結果?
sp_columns assignee
結果:
A bunch of column headers...
這有什麼錯我的數據庫,爲什麼不工作的呢?
我試圖「描述」一個表格,我在StackOverflow上有不同的帖子,但是當我運行sp_columns時,沒有顯示任何結果或行。爲什麼sp_columns不返回結果?
sp_columns assignee
結果:
A bunch of column headers...
這有什麼錯我的數據庫,爲什麼不工作的呢?
而不是sp_columns
使用目錄視圖(這些sp_
程序中的許多程序未針對新功能進行更新)。
SELECT name, system_type_id, ...
FROM sys.columns
WHERE [object_id] = OBJECT_ID('dbo.TableName');
---- yes this is important ----^^^^
此外,請確保您顯然位於正確的數據庫中。
如果您連接到錯誤的數據庫,查詢將無誤地執行,但不會返回任何結果。
例如,如果你有一個在patents
數據庫稱爲assignee
表和運行對master
數據庫這個查詢,你會得到任何結果,沒有錯誤:
sp_columns 'dbo.assignee';
結果:
Nothing, nada, zilch.
如果您更改連接,以便查詢適用於正確的數據庫,則會得到結果。
@AaronBertrand:我不知道爲什麼,但'EXEC sp_columns'dbo.tablename';'返回一個空集我,即使'EXEC sp_help'dbo.tablename''工作正常。 *編輯:*'EXEC sp_columns'tablename','dbo''工作! (也沒有引號) – 2013-03-04 17:47:26
@AndriyM什麼版本的SQL Server?無論如何,如果你不能讓'sp_columns'工作,更有理由停止使用'sp_'程序並使用'sys.columns'代替(或者,2012年,mew元數據發現函數/過程)。特別是如果你在'dbo'以外的模式中有表格 - 只需要在AdventureWorks中做很多這些工作;祝你好運。 – 2013-03-04 17:52:18
@AaronBertrand:SQL Server 2008 R2 RTM。我從來沒有使用過'sp_columns',只是看看它自己的教育。它是'sp_helptext sp_columns',它揭示了使用proc的正確方法,但我同意你的觀點,可能永遠不需要使用'sp_columns'。 – 2013-03-04 18:03:20
嘗試如下,
exec sp_columns yourTableName
這將返回可在當前環境中查詢指定的表和視圖的列信息。
注意:如果表中包含數據,那麼您只會獲得數據列表。
對於一個特定的模式,嘗試:
sp_columns tableName, schemaName
什麼用downvotes的?如果Q不好,至少說出爲什麼要編輯它或使其更好。 – mlissner 2013-02-19 20:14:03
是不是我,但懷疑:你的問題是非常基本的,因爲你連接到錯誤的數據庫(用戶錯誤)。這個問題不可能對未來的讀者有價值。 – 2013-02-20 00:16:24
儘管它可能是基本的,但我們現在已經獲得了超過1,000個視圖。 – mlissner 2013-11-11 18:35:24