一、Sql Server
(一)、保留幾位小數的兩種做法
數據庫里的 float momey 類型,都會精確到多位小數。但有時候 我們不需要那么精確,例如,只精確到兩位有效數字。
解決:
1. 使用 Round() 函數,如 Round(@num,2) 參數 2 表示 保留兩位有效數字。
2. 更好的方法是使用 Convert(decimal(18,2),@num) 實現轉換,decimal(18,2) 指定要保留的有效數字。
這兩個方法有一點不同:使用 Round() 函數,如果 @num 是常數,如 Round(2.3344,2) 則 會在把有效數字后面的 變為0 ,成 2.3300。但 Convert() 函數就不會。
原文鏈接:https://blog.csdn.net/skyandcode/java/article/details/23523815
(二)、返回自增列ID
SQLServer 返回Insert 操作 自增列ID的方法 有兩種:1、 @@identity 2、output inserted.ID (個人使用這種,可以返回添加的列名) ------ 使用 ExecuteScalar 方式獲取。
--- 使用 @@identity Insert into userinfo (username,age,mark) values('','','');select @@identity; --- 使用 output inserted.ID Insert into userinfo (username,age,mark) output inserted.id values('','','');
二、達夢SQL (Oracle )
(一)、insert 返回當前自增主鍵ID
進行數據Insert操作時,我們一般需要獲取新插入數據的ID,返回操作數據主鍵ID(int 類型的自增主鍵ID),達夢數據插入如何返回自增列呢?
達夢SQL 語法與Oracal 語法相似,對於初次接觸達夢數據庫的人來說,如果熟悉Oracle ,那么一定會事半功倍。
1、Oracle 中返回新增數據主鍵ID的方法是使用 序列 sequence ,結合 序列sequence 固有屬性nextval(下一個值)和currval(當前值)進行返回操 作。
create SEQUENCE SEQ_UserInfo -- 創建 userinfo 表的序列 (一般命名:SEQ_表名) minvalue 1 -- 最小值 maxvalue 99999999999999 -- 最大值(可不設置) 建議主鍵類型 bigint (long) start with 1 -- 起始值 increment by 1 -- 增量 cache 20 -- 緩存 (達夢:高速緩存) ORDER; -- 排序方式:順序 ORDER /循環 CYCLE
----------------------------------------------------------------
------ALTER SEQUENCE SEQ_UserInfo INCREMENT BY 2 CYCLE NOORDER;
------修改sequence 自增 增量為2 循環無順序處理。
----------------------------------------------------------------
2、使用時,在新增sql 中使用 nextval 替代 自增主鍵值,然后再使用 currval 進行新增數據返回值獲取。
insert into userinfo(id,username,age,mark) values(SEQ_UserInfo.nextval,'name1',18,'測試添加') ; select SEQ_UserInfo.currval from dual;
3、如果執行添加語句失敗:提示 僅當指定列列表,且 SET IDENTITY_INSERT 為ON 時,才能對自增列賦值
SET IDENTITY_INSERT userinfo ON; insert into userinfo(id,username,age,mark) values(SEQ_UserInfo.nextval,'name1',18,'測試添加') ; SET IDENTITY_INSERT userinfo OFF; select SEQ_UserInfo.currval from dual;
如有不合理之處,歡迎指出。歡迎轉載,轉載請注明出處。
如果您覺得本文對您有幫助,歡迎點擊“收藏”按鈕!(/:微笑)
