如何检查SQL SERVER中的列在C#中是否自动递增?

如何检查SQL SERVER中的列在C#中是否自动递增?,c#,sql-server,increment,C#,Sql Server,Increment,我有一个问题,我必须从我的C#程序向SQL SERVER的表中插入一些数据,但我不知道哪些列是自动递增的?有没有办法找到这些列,这样我就不会在这些列中插入值?这不是C#操作。这种操作只能在DBMS中可靠地完成。数据库管理员的工作是正确设置表并保持正确设置。也许是你的instaler程序的工作。了解shema,不要试图“猜测”它 我认为不值得花费资源来验证这一点。我确实会检查用户名对Passwrod Hash&salt的检索是否会返回比结果更多的结果(虽然名称可能不是PK,但它仍然应该是唯一的),

我有一个问题,我必须从我的C#程序向SQL SERVER的表中插入一些数据,但我不知道哪些列是自动递增的?有没有办法找到这些列,这样我就不会在这些列中插入值?

这不是C#操作。这种操作只能在DBMS中可靠地完成。数据库管理员的工作是正确设置表并保持正确设置。也许是你的instaler程序的工作。了解shema,不要试图“猜测”它

我认为不值得花费资源来验证这一点。我确实会检查用户名对Passwrod Hash&salt的检索是否会返回比结果更多的结果(虽然名称可能不是PK,但它仍然应该是唯一的),但除此之外,DB只是我必须信任的东西。它的行为出人意料就像RAM的行为出人意料-您无法修复它,检测是管理员的工作


您可以信任DB的几乎所有内容,也可以不信任DB。

您的意思是,就像检查
sys.columns
和检查
is_identity
的值一样?理想情况下,您首先应该知道要插入的表的架构,我只需要知道列的索引,它是自动递增的,所以我不插入它value@AlmaIbrašimović不是自动递增列,而是主键列。带自动递增的整数是显而易见的解决方案。但GUID往往是非顺序的。如果您尝试插入它,SQL Server将严格拒绝insert语句。它通常也是第一栏,或者是最尖叫“嘿,我应该是一个主要的关键候选人”的栏。注意,通常不止一个栏有限制。外键约束很常见。其他列可能是唯一的。还有RowVersion,它也是不可设置的。我必须将excel表格加载到程序中,然后将数据加载到数据库中,但我不知道数据库的结构,我只知道表的名称、列和数据。所以,如果我在表中插入的列是自动递增的,那么我的程序不知道这一点,所以我无法插入什么阻止了您与DBA交谈以获取详细信息?@Almibrašimović然后找出结构。这是一个数据库,你也可以访问。为什么不简单地问一下Shema呢?通常,shema是用“createtable”语法给出的:|我认为最多可以得到列名。但是找出主键呢?你从shema那里得到的。实体框架是关于在运行时为DB访问构建类的。所以我认为它有一些解决办法。