av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

如何:創(chuàng)建和運(yùn)行 CLR SQL Server 存儲(chǔ)過(guò)程

瀏覽:79日期:2023-11-07 10:02:22

如何:創(chuàng)建和運(yùn)行 CLR SQL Server 存儲(chǔ)過(guò)程

通過(guò)將“存儲(chǔ)過(guò)程”項(xiàng)添加到 SQL Server 項(xiàng)目,可以創(chuàng)建 SQL 存儲(chǔ)過(guò)程。成功部署到 SQL Server 之后,可通過(guò)與任何其他存儲(chǔ)過(guò)程相同的方式調(diào)用和執(zhí)行在托管代碼中創(chuàng)建的存儲(chǔ)過(guò)程。

注意; 在默認(rèn)情況下,Microsoft SQL Server 中關(guān)閉了公共語(yǔ)言運(yùn)行庫(kù) (CLR) 集成功能。必須啟用該功能才能使用 SQL Server 項(xiàng)目項(xiàng)。若要啟用 CLR 集成,請(qǐng)使用 sp_configure 存儲(chǔ)過(guò)程的“啟用 clr”選項(xiàng)。有關(guān)更多信息,請(qǐng)參見(jiàn)啟用 CLR 集成。注意; 顯示的對(duì)話(huà)框和菜單命令可能會(huì)與幫助中的描述不同,具體取決于您現(xiàn)用的設(shè)置或版本。若要更改設(shè)置,請(qǐng)?jiān)凇肮ぞ摺辈藛紊线x擇“導(dǎo)入和導(dǎo)出設(shè)置”。有關(guān)更多信息,請(qǐng)參見(jiàn) Visual Studio 設(shè)置。

創(chuàng)建 SQL Server 存儲(chǔ)過(guò)程創(chuàng)建 SQL Server 存儲(chǔ)過(guò)程打開(kāi)一個(gè)現(xiàn)有的“SQL Server 項(xiàng)目”,或者創(chuàng)建一個(gè)新項(xiàng)目。有關(guān)更多信息,請(qǐng)參見(jiàn)如何:創(chuàng)建 SQL Server 項(xiàng)目。

從“項(xiàng)目”菜單中選擇“添加新項(xiàng)”。

在“添加新項(xiàng)”對(duì)話(huà)框 中選擇“存儲(chǔ)過(guò)程”。

鍵入新存儲(chǔ)過(guò)程的“名稱(chēng)”。

添加執(zhí)行存儲(chǔ)過(guò)程時(shí)要運(yùn)行的代碼。請(qǐng)參見(jiàn)下面的示例。

注意; C++ 示例在編譯時(shí)必須使用 /clr:safe 編譯器選項(xiàng)。

對(duì)于 Visual Basic 和 Visual C#,在“解決方案資源管理器”中,打開(kāi)“TestScripts”文件夾,再雙擊“Test.sql”文件。

對(duì)于 Visual C++,在“解決方案資源管理器”中,打開(kāi)“debug.sql”文件。

將代碼添加到“Test.sql”(Visual C++ 中為“debug.sql”)文件中以執(zhí)行存儲(chǔ)過(guò)程。請(qǐng)參見(jiàn)下面的第二個(gè)示例。

按 F5 生成、部署并調(diào)試該存儲(chǔ)過(guò)程。有關(guān)不進(jìn)行調(diào)試直接部署的信息,請(qǐng)參見(jiàn)如何:將 SQL Server 項(xiàng)目項(xiàng)部署到 SQL Server 中。

在“輸出”窗口中查看結(jié)果,然后選擇“從此處顯示輸出:數(shù)據(jù)庫(kù)輸出”。

示例下面的代碼示例創(chuàng)建一個(gè)存儲(chǔ)過(guò)程,向 Adventure Works 示例數(shù)據(jù)庫(kù)的 Currency 表中插入一條記錄。并在創(chuàng)建了該存儲(chǔ)過(guò)程之后,將其部署到 SQL Server。有關(guān)更多信息,請(qǐng)參見(jiàn)如何:將 SQL Server 項(xiàng)目項(xiàng)部署到 SQL Server 中。

Visual Basic 復(fù)制代碼Imports SystemImports System.DataImports System.Data.SqlClientImports System.Data.SqlTypesImports Microsoft.SqlServer.Server

Partial Public Class StoredProcedures

<SqlProcedure()> _ Public Shared Sub InsertCurrency( _ ByVal currencyCode As SqlString, ByVal name As SqlString)

Using conn As New SqlConnection('context connection=true')

Dim InsertCurrencyCommand As New SqlCommand() Dim currencyCodeParam As New SqlParameter('@CurrencyCode', SqlDbType.NVarChar) Dim nameParam As New SqlParameter('@Name', SqlDbType.NVarChar)

currencyCodeParam.Value = currencyCode nameParam.Value = name

InsertCurrencyCommand.CommandText = _ 'INSERT Sales.Currency (CurrencyCode, Name, ModifiedDate)' & _ ' VALUES(@CurrencyCode, @Name)'

InsertCurrencyCommand.Connection = conn

conn.Open() InsertCurrencyCommand.ExecuteNonQuery() conn.Close() End Using End SubEnd ClassC# 復(fù)制代碼using System;using System.Data;using System.Data.SqlClient;using System.Data.SqlTypes;using Microsoft.SqlServer.Server;

public partial class StoredProcedures{ [SqlProcedure()] public static void InsertCurrency_CS( SqlString currencyCode, SqlString name) { using (SqlConnection conn = new SqlConnection('context connection=true')) { SqlCommand InsertCurrencyCommand = new SqlCommand(); SqlParameter currencyCodeParam = new SqlParameter('@CurrencyCode', SqlDbType.NVarChar); SqlParameter nameParam = new SqlParameter('@Name', SqlDbType.NVarChar);

InsertCurrencyCommand.CommandText = 'INSERT Sales.Currency (CurrencyCode, Name, ModifiedDate)' + ' VALUES(@CurrencyCode, @Name)';

InsertCurrencyCommand.Connection = conn;

conn.Open(); InsertCurrencyCommand.ExecuteNonQuery(); conn.Close(); } }}C++ 復(fù)制代碼#include 'stdafx.h'

#using <System.dll>#using <System.Data.dll>#using <System.Xml.dll>

using namespace System;using namespace System::Data;using namespace System::Data::Sql;using namespace System::Data::SqlClient;using namespace System::Data::SqlTypes;using namespace Microsoft::SqlServer::Server;

// In order to debug your Stored Procedure, add the following to your debug.sql file://// EXEC InsertCurrency_CPP 'AAA', 'Currency Test'// SELECT * FROM Sales.Currency WHERE CurrencyCode = 'AAA'

public ref class StoredProcedures{public: [SqlProcedure] static void InsertCurrency_CPP(SqlString currencyCode, SqlString name) { SqlConnection ^conn = gcnew SqlConnection('context connection=true');

SqlCommand ^insertCurrencyCommand = gcnew SqlCommand(); SqlParameter ^currencyCodeParam = gcnew SqlParameter('@CurrencyCode', SqlDbType::NVarChar); SqlParameter ^nameParam = gcnew SqlParameter('@Name', SqlDbType::NVarChar);

insertCurrencyCommand->CommandText = 'insert Sales.Currency(CurrencyCode, Name, ModifiedDate)' + ' values(@CurrencyCode, @Name)'; insertCurrencyCommand->Connection = conn;

conn->Open(); insertCurrencyCommand->ExecuteNonQuery();

conn->Close(); }};

將用于執(zhí)行和測(cè)試存儲(chǔ)過(guò)程的代碼添加到“Test.sql”(Visual C++ 中為“debug.sql”)文件中,該文件在項(xiàng)目的“TestScripts”文件夾中。例如,如果部署了一個(gè)存儲(chǔ)過(guò)程,則可以通過(guò)調(diào)用 EXEC <StoredProcedureName> 并傳入任何預(yù)期的參數(shù)來(lái)運(yùn)行該過(guò)程。如果存儲(chǔ)過(guò)程沒(méi)有返回任何值,則請(qǐng)插入一段其他代碼以驗(yàn)證存儲(chǔ)過(guò)程是否對(duì)數(shù)據(jù)產(chǎn)生影響。

復(fù)制代碼EXEC InsertCurrency 'AAA', 'Currency Test'SELECT * from Sales.Currency where CurrencyCode = 'AAA'

主站蜘蛛池模板: 韩日一区二区 | 毛片毛片毛片毛片毛片 | 在线观看网址你懂的 | 欧美在线激情 | 在线视频福利 | 欧美a级黄色片 | 开心激情站 | 黄视频免费在线观看 | 激情高潮到大叫狂喷水 | 99久久精品一区二区成人 | 91精品一区二区 | 伊人久久免费视频 | 久久精品国产免费 | 91久久国产综合久久 | 欧美成人一级 | 久久久久伊人 | 日韩少妇av| 亚洲高清免费视频 | 日韩av免费在线播放 | 欧美91| 99一区二区 | 精品视频在线观看 | 丝袜美腿一区二区三区 | 久久久久婷婷 | 欧美黄色一级大片 | 视频爱爱免费视频爱爱太爽 | 亚洲精品aaa | 亚洲综人网| 在线观看视频国产 | 亚洲精品免费视频 | 日韩国产在线 | 日韩av影片 | 欧美另类激情 | 三级黄网站 | 久久国产精品一区二区三区 | 韩日精品视频 | 黄色av免费观看 | 三级黄网站 | 午夜精品视频在线 | 国产激情久久久 | 欧美一区二区三区的 |