SQL Server,其中field是int?

Sco*_*ach 5 sql t-sql sql-server-2005 entity-attribute-value

我怎样才能完成:

select * from table where column_value is int
Run Code Online (Sandbox Code Playgroud)

我知道我可能内部加入系统表和类型表但我想知道是否有更优雅的方式.

请注意,column_value是一个"可能"具有int的varchar,但不一定.

也许我可以抛出它并捕获错误?但同样,这似乎是一个黑客.

Ste*_*ass 2

select * from table
where column_value not like '[^0-9]'
Run Code Online (Sandbox Code Playgroud)

如果允许负整数,你需要类似的东西

where column_value like '[+-]%' 
and substring(column_value,patindex('[+-]',substring(column_value,1))+1,len(column_value))
not like '[^0-9]'
Run Code Online (Sandbox Code Playgroud)

如果 column_value 可以是超出“int”类型限制的整数,并且您希望排除这种情况,则需要更多代码。