我是CLR的新手,并且已经在Microsoft教程中苦苦挣扎。
这是教程:How to: Create and Run a CLR SQL Server Stored Procedure如何让Microsoft SQLCLR存储过程示例工作
有一个例子存储过程Insert_Currency_CS和TEST.SQL
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);
currencyCodeParam.Value = currencyCode;
nameParam.Value = name;
InsertCurrencyCommand.Parameters.Add(currencyCodeParam);
InsertCurrencyCommand.Parameters.Add(nameParam);
InsertCurrencyCommand.CommandText =
"INSERT Sales.Currency (CurrencyCode, Name, ModifiedDate)" +
" VALUES(@CurrencyCode, @Name, GetDate())";
InsertCurrencyCommand.Connection = conn;
conn.Open();
InsertCurrencyCommand.ExecuteNonQuery();
conn.Close();
}
}
}
和
EXEC InsertCurrency 'AAA', 'Currency Test'
SELECT * from Sales.Currency where CurrencyCode = 'AAA'
为了得到这个工作,我要补充的AdventureWorks2014我想,所以我刚添加它作为新的数据库项目到我的解决方案可以将其内容(表和2个脚本)复制到我的解决方案资源管理器中的第一个项目数据库。但后来我得到语法错误,并在例如这些线路不承认我的部署脚本CLRTest.sql选项错误:
GO
:setvar DatabaseName "CLRTest"
:setvar DefaultFilePrefix "CLRTest"
:setvar DefaultDataPath "C:\Users\Torsten\AppData\Local\Microsoft\VisualStudio\SSDT\CLRTest"
:setvar DefaultLogPath "C:\Users\Torsten\AppData\Local\Microsoft\VisualStudio\SSDT\CLRTest"
第一:SETVAR行我得到的语法错误和数据库名称是无法识别的选项。同样在这里
:on error exit
这里
:setvar __IsSqlCmdEnabled "True"
现在可以也许有人解释我如何使我的数据库项目中使用AdventureWorks2014数据库,使教程CLR存储过程工作时,被测试执行.SQL。
我想问题是我不知道如何把AdventureWorks2014数据库放到我的空数据库项目中。我正在尝试SQLSchemaCompare,然后更新目标(localdb)\ ProjectsV12.CLR测试。在这里,我有问题,如果我在升级包括AW2014FullTextCatalog,我收到一个脚本执行错误,如果我排除它,我得到另一个脚本中的错误CREATE FULLTEXT INDEX ON ... 此外这个错误:
Error 1 SQL72014: .Net SqlClient Data Provider:
Msg 9982, Level 16, State 100, Line 1 Cannot use full-text search in user instance.
C:\Users\Torsten\AppData\Local\Temp\CLR Test_1_Update3.publish.sql 47 1
我甚至不能肯定的是,这是把一个数据库导入空数据库以正确的方式,在MS教程甚至没有达到VS2013但只有VS2010 ...
你会得到哪个错误? – rbr94
“CREATE FULLTEXT CATALOG”与什么有关?你是否复制粘贴错误的东西?或者你是否可能在某处忘记了一个“GO”,导致该陈述被视为前一个陈述的一部分? –
错误:SQL72045:脚本执行错误。执行的脚本: CREATE FULLTEXT CATALOG [AW2014FullTextCatalog] WITH ACCENT_SENSITIVITY = ON AS DEFAULT AUTHORIZATION [dbo]; – user26026