2010-02-09 42 views

回答

1

那麼有ISDATE()和ISNUMERIC()。你需要做什麼?

+0

我想要內置函數來查找int,貨幣和小數。 – susanthosh 2010-02-09 11:47:01

+1

粘貼一些示例代碼,我們無法制定出你想要的。 – Codesleuth 2010-02-09 12:05:46

0

如果你正在處理一個SQL_VARIANT,使用內置SQL_VARIANT_PROPERTY功能:

SELECT SQL_VARIANT_PROPERTY(@value,'BaseType') AS 'Base Type' 
0

有沒有真正的內置功能,如你所期待的。 唯一的選擇是查詢sysobjects,syscolumns和systypes(SQL 2000)。

select 
    obj.name, 
    col.name, 
    typ.name 
From dbo.sysobjects obj 
    Inner Join dbo.syscolumns col 
     On col.id = obj.id 
    Inner Join dbo.systypes typ 
     On typ.xusertype = col.xusertype 

此查詢將列出所有表及其列和它們的類型。貨幣將是貨幣類型,小數點是數字。在列表中,您可以找到數字的精度和比例。

+0

-1爲虛假陳述,+1爲非常有用的答案。正如我在我的回答中所述,有些功能可以做他正在尋找的東西。他們可能不會做他想要的一切 - 然後你的回答可以以非標準的方式提供幫助。 – Hogan 2010-02-09 13:29:28

+0

IsDate我絕對有監督,但請你可以啓發IsNumeric如何能夠區分數字,金錢和整數類型? 這是原始問題,因此我添加了「...就像您正在查找的那樣」,因爲IsMoney,IsInteger或IsNumeric沒有功能(僅感測數字類型,而不是驗證數字)。 – KMB 2010-02-09 17:48:24

+0

但是這不會查看varchar字段中的數據,並告訴您是否是整數。這就是大多數人問這樣的問題希望能夠做到的。 – HLGEM 2010-02-11 19:22:49