在C#中,int并且Int32是同样的事情,但我读了许多那个时代int优于Int32没有给出理由.有原因,我应该关心吗?
当我们使用这三种时,有哪些不同的情况?我应该在哪里使用,哪个不应该?
所以我有一个以标识列为主键的表,所以它是一个整数.那么,为什么SCOPE_IDENTITY()总是向我的C#应用程序返回一个十进制值而不是一个int?这真的很烦人,因为十进制值不会隐式转换为C#中的整数,这意味着我现在必须重写一堆东西,并且有很多辅助方法,因为我使用SQL Server和Postgres,Postgres确实返回一个整数等效功能..
为什么SCOPE_IDENTITY()不只返回一个普通的整数?是否有人通常使用十进制/非身份值作为主键?
在Visual Studio中使用C#,我在表中插入一行,如下所示:
INSERT INTO foo (column_name)
VALUES ('bar')
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情,但我不知道正确的语法:
INSERT INTO foo (column_name)
VALUES ('bar')
RETURNING foo_id
Run Code Online (Sandbox Code Playgroud)
这将从foo_id新插入的行返回列.
此外,即使我找到了正确的语法,我还有另外一个问题:我有SqlDataReader并且SqlDataAdapter随意使用.据我所知,前者用于读取数据,第二个用于操作数据.当使用return语句插入一行时,我正在操作和读取数据,因此我不确定要使用什么.也许我应该用这个完全不同的东西?
以下情况:
我有一个用于在ESX环境中创建VM的ASP.NET网站.用户可以选择一些设置,然后单击按钮以创建VM.
此按钮的Click-Event检查值并将其写入MS SQL Server.该表有一个primary key (Integer, IDENTITY)我不需要插入(因为IDENTITY).
但是我需要这个主键,因为我在事件之后将用户重定向到另一个页面,并且该页面需要主键进行常规查询(使用查询字符串发送它).
目前,我在查询后直接进行SELECT INSERT INTO查询并获取最后一个条目.只要只有一个用户使用此页面,该工作就有效.
我的问题是:
是否可以IDENTITY直接从INSERT INTO查询中接收主键(如函数的返回值)?