我需要使用列表中保存的数据实时创建一些 SQL 脚本。我使用一些硬编码文本和格式字符串以及字符串生成器来执行此操作。到目前为止,这是可行的,但我遇到了一个问题,因为我的代码总是在要插入的值两边加上单引号。如果该字段是非数字类型,则此操作会失败,因为我需要创建不带引号的值。由于某些文本字段也使用数字,我无法解析列表中的值。我的计划是运行如下所示的内容来获取给定表的列详细信息。
EXEC sp_columns tablename
我已经根据 C# 中 COLUMN_NAME 和 TYPE_NAME 的输出创建了一个字典。这并不理想,因为我仍然需要进行一些解析来查看类型是否是数字。我想做的是运行一个查询,如果类型是数字(int、float、real 等),则仅返回 COLUMN_NAME。然后,我的 C# 代码可以检查列表以查看我当前正在处理的字段是否存在。如果是这样,我不会引用该值。任何人都可以建议我可以运行的查询可以做到这一点吗?
最佳答案
信息架构包含所有这些信息,因此此查询可以工作:
SELECT [COLUMN_NAME],[DATA_TYPE] FROM [INFORMATION_SCHEMA].[COLUMNS]
WHERE [TABLE_NAME] = 'Table_1' AND [NUMERIC_PRECISION] IS NOT NULL
关于c# - 我需要从表中获取数字类型列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20631425/