在2005之前的版本創建存儲過程都是在數據庫里面寫Transact-SQL語言實現的,不過現在SQL Server 2005支持用其他面向對象的語言編寫CLR存儲過程了,關于這樣做的好處,官方有很多解釋了,這里就直接說明實現方法了。
假設服務器里面有個test數據庫,數據庫有個架構user,還有一個表test1,然后有個sql登陸用戶叫test_user,將這個用戶設置成VS2005里面數據庫連接的登陸用戶。
在VS2005中創建一個項目,類別是SQL Server數據庫項目,然后往項目里面添加一個存儲過程。接著在該文件里面編寫如下存儲過程代碼:
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
public partial class StoredProcedures
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void SelectAll()
{
using (SqlConnection connection = new SqlConnection("context connection=true"))
{
connection.Open();
SqlCommand command = new SqlCommand("SELECT * FROM [user].test1", connection);
SqlContext.Pipe.ExecuteAndSend(command);
}
}
};