在2005之前的版本建立預存程序都是在資料庫裡面寫Transact-SQL語言實現的,不過現在SQL Server 2005支援用其他物件導向的語言編寫CLR預存程序了,關於這樣做的好處,官方有很多解釋了,這裡就直接說明實現方法了。假設伺服器裡面有個test資料庫,資料庫有個架構user,還有一個表test1,然後有個sql登陸使用者叫test_user,將這個使用者佈建成VS2005裡面資料庫連接的登陸使用者。在VS2005中建立一個項目,類別是SQL
最近由於工作需要,簡單瞭解了下SQL Server 2005 資料庫建立簡單的在預存程序。一、首先說明如何建立預存程序: CREATE PROCEDUER my_pro @inputDate varchar ,//聲明輸入變數 @Result varchar(255) output //聲明輸出變數 AS declare @variable1 varchar(255)//聲明varchar變數 declare @variable2 int //聲明整形變數 BEGIN IF ...(條件)
語句SELECT * FROM 資料庫A.dbo.表A a, 資料庫B.dbo.表B b WHERE a.field=b.field"DBO"可以省略 如SELECT * FROM 資料庫A..表A a, 資料庫B..表B b WHERE a.field=b.fieldSqlServer資料庫:--這句是映射一個遠端資料庫EXEC sp_addlinkedserver '遠端資料庫的IP或主機名稱',N'SQL Server'--這句是登入遠端資料庫EXEC
對於結果集有幾個處理,值得講解一下1. 並集(union,Union all)這個很簡單,是把兩個結果集水平合并起來。例如SELECT * FROM AUNIONSELECT * FROM B【注意】union會重複資料刪除值,也就是說A和B中重複的行,最終只會出現一次,而union all則會保留重複行。2. 差異(Except)就是兩個集中不重複的部分。例如SELECT * FROM AEXCEPTSELECT * FROM B這個的意思是,凡是不出現在B表中的A表的行。3.
設定sqlServer使用ROW_NUMBER時不排序 --1.看到NHibernate是這樣寫的分頁,感覺寫起來比較容易理解(應該不會有效率問題吧?) --with只是定一個別名? [sql] with query as (select ROW_NUMBER() over(order by (select 0)) AS ROWNUM, * FROM Product) select * from query where ROWNUM BETWEEN 5 AND 10
錯誤現象: Microsoft OLE DB Provider for SQL Server 錯誤 '80040e2f'不能將值 NULL 插入列 'id',表 'web.dbo.dingdan';列不允許有空值。INSERT 失敗。/Untitled-2.asp,行 115原因分析:SQL資料庫中,建立表時沒有將id列標識規範設定為“是”。所以大家在建立表的時候一定將id設為自動增加id,標識之類的。解決辦法:點擊表,修改,設定id列標識規範為“是”,如下圖。
網上提供了很多sqlserver發送郵件的文章,轉載居多,大部分介紹win2000+outlook2003環境,在作業系統和office已經更新換代的今天,意義不大。現在工作中碰到了需要利用sqlserver發送郵件的問題,特整理文字如下:目的:利用Sqlserver代理的郵件會話建立操作員監控作業完成情況測試環境: 作業系統:windows 2003/windows xp OutLook: OutLook 2003 測試的電子郵件:
在SQL Server中可以使用系統內部預存程序xp_fileexist判斷檔案是否存在,如果存在再使用xp_cmdshell刪除檔案。xp_fileexist除了可以判斷檔案是否存在外,還可以判斷檔案夾是否存在,下面是下使用這兩個的樣本。刪除檔案儲存體過程 ALTER proc [dbo].[delFile_P] ( @path nvarchar(200)) as declare @result int exec master.dbo.xp_fileexist @path,@result