設定具體資料庫啟動service broker服務,如下圖:
我這裡試例資料庫的名字為「ghj_demo」,修改 broker enabled 屬性為 true。
你也可以用sql 語句來修改,修改的sql語句如下:
alter確保你將使用的資料庫帳戶具有必需的許可權database ghj_demo set enable_broker
你在後面連線這個資料庫的帳戶,要確保對這個資料庫具有 subscribe、 query 、notifications 的許可權。
下面就是乙個簡單的**例子,來演示查詢通知。這裡用到乙個我自己建立的表:
這個表結構如下:
create演示的控制台**如下:table [dbo].[user](
[username] [nvarchar](20) not
null,
[email] [nvarchar](50) null
) on [primary]
go
using system;一些注意事項:摘自msdn文件using system.data;
using system.data.sqlclient;
namespace demo
}void testevent(object o, sqlnotificationeventargs args)
static
void main(string args)
catch
tryfinally}}
}
使用查詢通知功能的應用程式需要考慮下列特殊注意事項。
注意事項
說明
sql server 的服務帳戶
對於使用本地系統帳戶作為服務帳戶的 sql server 例項,應用程式不會從其接收通知。
接收通知
無法在執行 windows 95 或 windows 98 的計算機上接收通知。
查詢通知和事務
如果在某一事務內進行了多項影響具有已註冊通知請求的一組資料的修改,則僅會傳送單個通知事件。
快速更新和查詢通知
使用查詢通知的應用程式必須考慮到立即出現通知的情況。伺服器上的資料更改時,通知訊息將傳送到相應的服務中介程式佇列。 應用程式需要註冊才能接收其他通知。 因此,如果多個應用程式快速更新某個資料集,應用程式在快取重新整理後,立即可以接收通知,檢索資料,然後獲取另乙個更新通知。 編寫使用查詢通知的應用程式時必須考慮到此情況。 如果應用程式使用不斷更新的資料,則可能更適合使用另一種資料快取策略。
設定選項設定
在通知請求下執行 select 語句時,提交請求的連線必須設定以下選項:
· ansi_nulls on
· ansi_padding on
· ansi_warnings on
· concat_null_yields_null on
· quoted_identifier on
· numeric_roundabort off
· arithabort on
您可以為 select 和 execute 語句設定通知。 使用 execute 語句時,sql server 會為執行的命令而不是 execute 語句本身註冊通知。 該命令必須滿足 select 語句的要求和限制。 當註冊通知的命令包含多個語句時,資料庫引擎會為批處理中的每個語句建立乙個通知。
對滿足以下要求的 select 語句支援查詢通知:
sunmast 對查詢通知的注意事情也有很多有價值的整理:
使用sql server 2005 query notification的幾個注意事項
剖析sql server 2005查詢通知之基礎
sql server 2005 service broker 初探
sql server 2005資料庫開發詳解
c# windows 應用程式中實現 sql server 2005 查詢通知
.net 2.0 sqldependency快速上手指南
在 windows 應用程式中使用 sqldependency
使用sql server 2005 query notification的幾個注意事項
sql2005事務的使用
公司裡的每個專案都有很多一次要操作兩次以上資料庫的,為了資料的完整性,這就需要使用事務 事務也屬於儲存過程,如下 alter proc dbo js takemoney userid bigint,引數 usercode varchar 50 amount numeric 18,2 rmb nume...
SQL 2005埠的修改
sql 2005埠的修改 1 預設埠 sql server的預設tcp埠是1433,udp埠是1434。2005連線字串為 provider sqlncli.1 persist security info true user id password initial catalog tablename...
乙個簡單的sql
declare wokno varchar 500 用來記錄職工號 declare str nvarchar 4000 用來存放查詢語句 declare count int 求出總記錄數 declare i int set i 0 select count count distinct wokno ...