用 Entity Framework 找出 SQL 中列的数据类型
Find out the data type of a column in SQL with Entity Framework
我需要将 SQL table 中的整数列更改为小数列。
我觉得在做这样的改变之前,我应该先看看之前是否做过改变,为此我执行了下面的代码:
var varx = context.Database.ExecuteSqlCommand("SELECT COLUMN_NAME = 'column_name' FROM INFORMATION_SCHEMA.COLUMNS where DATA_TYPE = 'decimal' AND TABLE_NAME = 'table_name'");
但是不管列已经是小数还是整数,varx总是等于-1
欢迎提出任何建议或意见。
如果您可以连接到 Microsoft SQL Server Management Studio,您可以查看 window 的左侧,在对象资源管理器中,转到您要查找的 table更改、展开它,然后在列文件夹中您可以看到所有列及其类型。
或者,正如@Çöđěxěŕ 所说,您可以先自行执行该查询,然后查看实际情况 returns
这是一个解决方案:
int n = context.Database.SqlQuery<int>("SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS where DATA_TYPE = 'int' AND TABLE_NAME = 'my_table' AND COLUMN_NAME = 'column name'").ToList().FirstOrDefault();
如果table中有int类型的元素,n等于1,没有则为0。
我需要将 SQL table 中的整数列更改为小数列。
我觉得在做这样的改变之前,我应该先看看之前是否做过改变,为此我执行了下面的代码:
var varx = context.Database.ExecuteSqlCommand("SELECT COLUMN_NAME = 'column_name' FROM INFORMATION_SCHEMA.COLUMNS where DATA_TYPE = 'decimal' AND TABLE_NAME = 'table_name'");
但是不管列已经是小数还是整数,varx总是等于-1
欢迎提出任何建议或意见。
如果您可以连接到 Microsoft SQL Server Management Studio,您可以查看 window 的左侧,在对象资源管理器中,转到您要查找的 table更改、展开它,然后在列文件夹中您可以看到所有列及其类型。
或者,正如@Çöđěxěŕ 所说,您可以先自行执行该查询,然后查看实际情况 returns
这是一个解决方案:
int n = context.Database.SqlQuery<int>("SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS where DATA_TYPE = 'int' AND TABLE_NAME = 'my_table' AND COLUMN_NAME = 'column name'").ToList().FirstOrDefault();
n等于1,没有则为0。