电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

如何:創(chuàng)建和運行 CLR SQL Server 存儲過程

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

如何:創(chuàng)建和運行 CLR SQL Server 存儲過程

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

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

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

從“項目”菜單中選擇“添加新項”。

在“添加新項”對話框 中選擇“存儲過程”。

鍵入新存儲過程的“名稱”。

添加執(zhí)行存儲過程時要運行的代碼。請參見下面的示例。

注意; C++ 示例在編譯時必須使用 /clr:safe 編譯器選項。

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

對于 Visual C++,在“解決方案資源管理器”中,打開“debug.sql”文件。

將代碼添加到“Test.sql”(Visual C++ 中為“debug.sql”)文件中以執(zhí)行存儲過程。請參見下面的第二個示例。

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

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

示例下面的代碼示例創(chuàng)建一個存儲過程,向 Adventure Works 示例數(shù)據(jù)庫的 Currency 表中插入一條記錄。并在創(chuàng)建了該存儲過程之后,將其部署到 SQL Server。有關(guān)更多信息,請參見如何:將 SQL Server 項目項部署到 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í)行和測試存儲過程的代碼添加到“Test.sql”(Visual C++ 中為“debug.sql”)文件中,該文件在項目的“TestScripts”文件夾中。例如,如果部署了一個存儲過程,則可以通過調(diào)用 EXEC <StoredProcedureName> 并傳入任何預(yù)期的參數(shù)來運行該過程。如果存儲過程沒有返回任何值,則請插入一段其他代碼以驗證存儲過程是否對數(shù)據(jù)產(chǎn)生影響。

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

標(biāo)簽: Sql Server 數(shù)據(jù)庫
主站蜘蛛池模板: 压滤机滤板_厢式_隔膜_板框压滤机滤板厂家价格型号材质-大凯环保 | 四川职高信息网-初高中、大专、职业技术学校招生信息网 | 废气处理设备-工业除尘器-RTO-RCO-蓄热式焚烧炉厂家-江苏天达环保设备有限公司 | 导电银胶_LED封装导电银胶_半导体封装导电胶厂家-上海腾烁 | 私人别墅家庭影院系统_家庭影院音响_家庭影院装修设计公司-邦牛影音 | 仪器仪表网 - 永久免费的b2b电子商务平台 | 焊锡,锡膏,锡线,锡条,焊锡膏-绿志岛金属有限公司 | 智慧消防-消防物联网系统云平台| 沙盘模型公司_沙盘模型制作公司_建筑模型公司_工业机械模型制作厂家 | 防火卷帘门价格-聊城一维工贸特级防火卷帘门厂家▲ | 高压负荷开关-苏州雷尔沃电器有限公司 | 电动打包机_气动打包机_钢带捆扎机_废纸打包机_手动捆扎机 | 硫酸钡厂家_高光沉淀硫酸钡价格-河南钡丰化工有限公司 | 北京公司注册_代理记账_代办商标注册工商执照-企力宝 | 江苏南京多语种翻译-专业翻译公司报价-正规商务翻译机构-南京华彦翻译服务有限公司 | 齿轮减速电机一体机_蜗轮蜗杆减速马达-德国BOSERL齿轮减速机带电机生产厂家 | 真空搅拌机-行星搅拌机-双行星动力混合机-广州市番禺区源创化工设备厂 | 电机铸铝配件_汽车压铸铝合金件_发动机压铸件_青岛颖圣赫机械有限公司 | 10吨无线拉力计-2吨拉力计价格-上海佳宜电子科技有限公司 | 医疗仪器模块 健康一体机 多参数监护仪 智慧医疗仪器方案定制 血氧监护 心电监护 -朗锐慧康 | 陶瓷加热器,履带式加热器-吴江市兴达电热设备厂 | 网架支座@球铰支座@钢结构支座@成品支座厂家@万向滑动支座_桥兴工程橡胶有限公司 | 单机除尘器 骨架-脉冲除尘器设备生产厂家-润天环保设备 | 高铝砖-高铝耐火球-高铝耐火砖生产厂家-价格【荣盛耐材】 | 立式硫化罐-劳保用品硫化罐-厂家直销-山东鑫泰鑫硫化罐厂家 | 聚合氯化铝-碱式氯化铝-聚合硫酸铁-聚氯化铝铁生产厂家多少钱一吨-聚丙烯酰胺价格_河南浩博净水材料有限公司 | 衬四氟_衬氟储罐_四氟储罐-无锡市氟瑞特防腐科技有限公司 | 宝宝药浴-产后药浴-药浴加盟-艾裕-专注母婴调养泡浴 | 杜康白酒加盟_杜康酒代理_杜康酒招商加盟官网_杜康酒厂加盟总代理—杜康酒神全国运营中心 | 黑龙江京科脑康医院-哈尔滨精神病医院哪家好_哈尔滨精神科医院排名_黑龙江精神心理病专科医院 | 企业VI设计_LOGO设计公司_品牌商标设计_【北京美研】 | BOE画框屏-触摸一体机-触控查询一体机-触摸屏一体机价格-厂家直销-触发电子 | 郑州大巴车出租|中巴车租赁|旅游大巴租车|包车|郑州旅游大巴车租赁有限公司 | 耳模扫描仪-定制耳机设计软件-DLP打印机-asiga打印机-fitshape「飞特西普」 | 幂简集成 - 品种超全的API接口平台, 一站搜索、试用、集成国内外API接口 | 杰恒蠕动泵-蠕动泵专业厂家-19年专注蠕动泵 | 玻璃钢板-玻璃钢防腐瓦-玻璃钢材料-广东壹诺 | 单机除尘器 骨架-脉冲除尘器设备生产厂家-润天环保设备 | 济南网站策划设计_自适应网站制作_H5企业网站搭建_济南外贸网站制作公司_锐尚 | 对夹式止回阀_对夹式蝶形止回阀_对夹式软密封止回阀_超薄型止回阀_不锈钢底阀-温州上炬阀门科技有限公司 | 深圳办公室装修,办公楼/写字楼装修设计,一级资质 - ADD写艺 |