1.建立:使用vs2005的「聚合函式」模板建立,實現以下幾個方法:
init():給每個要聚合的新組初始化;
accumulate():將每個值聚合;
merge():將乙個聚合組的結果新增到當前組中;
terminate():返回結果;
2.部署:通過vs2005部署自動在sqlserver中建立聚合函式;
3.使用:在sql語句中像使用其他聚合函式一樣使用自定義聚合函式。
samplesum.cs:
view source
print?
01.
using
system;
02.
using
system.data;
03.
using
system.data.sqlclient;
04.
using
system.data.sqltypes;
05.
using
microsoft.sqlserver.server;
06.
07.
08.
[serializable]
09.
[microsoft.sqlserver.server.sqluserdefinedaggregate(format.native)]
10.
public
struct
samplesum
11.
19.
20.
//將每個值聚合
21.
public
void
accumulate(sqlint32 value)
22.
25.
26.
//將乙個聚合組的結果新增到當前組中
27.
public
void
merge(samplesum group)
28.
31.
32.
//返回結果
33.
public
sqlint32 terminate()
34.
37.
38.
}
測試指令碼:
view source
print?
1.
select
c.categoryname, dbo.samplesum(p.quantity)
as
'sum'
2.
from
products p
inner
join
categories c
3.
on
p.categoryid = c.categoryid
4.
group
by
p.categoryid, c.categoryname
sql server 中主鍵自增長
今天我在處理新聞發布系統的增加新聞類別的時候,我發現單純的向資料庫中出入類別名,會報錯誤說沒有串入新聞類別id,但是之前新增的時候沒有這錯誤!這是建立新聞類別表的sql語句 create table category 建立category表 id int identity 1,1 primary k...
SQLServer中identity 自增 的用法
一 identity的基本用法 1.含義 identity表示該字段的值會自動更新,不需要我們維護,通常情況下我們不可以直接給identity修飾的字元賦值,否則編譯時會報錯 2.語法 列名 資料型別 約束 identity m,n m表示的是初始值,n表示的是每次自動增加的值 如果m和n的值都沒有...
Sql server 中關閉自增字段
今天有同事問我乙個關於 sql server自增字段值如何關閉自增,手動修改自增id的問題。以前經常使用這樣的sql 語句,但一時又想不起來,在幫助裡找了半天。唉 看來人真的老了,啥都記不起。高中的時候數學老師經常愛講這樣一句話 好記性不如亂筆頭 越來越感覺到這句話太對了 以後要勤記,多記,好好記。...