sqlserverdata
其實不用考慮那麼復雜嗎,我現在的存儲過程裡面,每次插入數據時都有個判斷,如果已存在就不插,不就可以重復執行了嗎
if not exists(select * from NS_DATA_DICTIONARY where data_value = '國股')
begin
insert into NS_DATA_DICTIONARY (DATA_TYPE, DATA_GROUP, DATA_VALUE)
values (4, 1, '國股')
end
可以重復執行,如果表中沒有,就插,有了就不插,簡單明了,更不要設什麼參數了
② sqlserver datareader.read 長度
明確答復:datareader沒有直接表示長度的屬性
解釋原因:
系統沒有自帶
判斷結束使用while(reader.read())
有無解決辦法:
datareader讀取是結果集,讀取到的數據會存放到List集合中,判斷list的數量來判斷長度
③ sqlserver
摘自:http://database.ctocio.com.cn/analysis/465/7709465.shtml
【IT專家網獨家】SQL Server用戶自定義函數和存儲過程有類似的功能,都可以創建捆綁SQL語句,存儲在server中供以後使用。這樣能夠極大地提高工作效率,通過以下的各種做法可以減少編程所需的時間:
重復使用編程代碼,減少編程開發時間。
隱藏SQL細節,把SQL繁瑣的工作留給資料庫開發人員,而程序開發員則集中處理高級編程語言。
維修集中化,可以在一個地方做業務上的邏輯修改,然後讓這些修改自動應用到所有相關程序中。
乍看之下,用戶自定義函數和存儲過程的功能似乎一摸一樣。但是,其實這兩者之間還有一些雖然細微但是很重要的差異:
存儲過程是使用EXEC命令獨立調用的,而用戶自定義函數是在另一個SQL語句中調用的。
l存儲程序是允許用戶和程序去使用存儲過程,而不是允許其存取表格,這樣能夠增強程序安全性。與標準的SQL Server相比,存儲程序限制用戶行動許可權方面更為細化。例如,如果你有一個貨存表格,每次賣出一個貨物收銀員都要對表格進行更新一次(從貨存中把該貨品減去一件)。你可以給收銀員設置許可權,允許其使用decrement_item存儲過程,而不是允許他們有任意修改或村表格的許可權。
函數必須始終返回一個值(一個標量值或一個表格)。而存儲過程可以返回一個標量值、一個表值或無需返回值。
總而言之,存儲程序對SQL Server開發員來說是最有價值的寶物之一,用於資料庫中,能夠大大的提高工作效率,增強安全性,絕對超值。