在2005之前的版本創(chuàng)建存儲過程都是在數(shù)據(jù)庫里面寫Transact-SQL語言實現(xiàn)的,不過現(xiàn)在SQL Server 2005支持用其他面向?qū)ο蟮恼Z言編寫CLR存儲過程了,關(guān)于這樣做的好處,官方有很多解釋了,這里就直接說明實現(xiàn)方法了。
假設(shè)服務(wù)器里面有個test數(shù)據(jù)庫,數(shù)據(jù)庫有個架構(gòu)user,還有一個表test1,然后有個sql登陸用戶叫test_user,將這個用戶設(shè)置成VS2005里面數(shù)據(jù)庫連接的登陸用戶。
在VS2005中創(chuàng)建一個項目,類別是SQL Server數(shù)據(jù)庫項目,然后往項目里面添加一個存儲過程。接著在該文件里面編寫如下存儲過程代碼:
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);
}
}
};