对于此xml(在SQL2005XML列中):1我希望能够检索属性的名称(ba、bb、bc、bd),而不是SQLServer2005中的值。好吧,XPath当然允许使用name()进行此操作,但SQL不支持。这是我对在SQL中使用XML的主要提示;您必须找出XML/Xpath/XQuery规范的哪些部分在那里。我能想到的唯一方法是构建一个CLRproc,将XML加载到XML文档(iirc)中并运行XPath来提取节点的名称。我愿意接受这里的建议。 最佳答案 DECLARE@xmlasxmlSET@xml='1'SELECTDISTIN
我有一个独特的问题。我正在将一个dll注册为SQLServer数据库中的一个程序集,它接受一个SQLXml变量以及两个字符串,并将数据序列化为JSON格式。作为引用,这里是方法调用:[SqlProcedure]publicstaticvoidReceipt(SqlStringinitiatorPassword,SqlStringinitiatorId,SqlXmlXMLOut,outSqlStringstrMessge)如果这是任何其他类型的应用程序,我会为此应用程序使用Newtonsoft.Json或Jayrock。通常我会按照给出的答案here并做类似的事情:XmlReaderr=
我们有一个第三方DLL,它可以对源信息的DataTable进行操作并生成一些有用的值,我们正在尝试通过SQLCLR将其连接起来,以便在SQLServer2008中作为表值UDF进行调用。取概念here更进一步,我想编写一个CLRTable-ValuedFunction对来自数据库的源数据表进行操作。我很确定我了解在T-SQL方面需要发生什么;但是,.NET(C#)代码中的方法签名应该是什么样的?“来自SQLServer的表数据”的参数数据类型是什么?例如/*Setup*/CREATETYPEInTableTypeASTABLE(LocationNameVARCHAR(50),LatFL
我有一个SqlServer项目,其中包含一个非常简单的表值函数测试:-[SqlFunction(TableDefinition="forenamenvarchar(50)",FillRowMethodName="TestFillRow",DataAccess=DataAccessKind.Read)]publicstaticIEnumerableTestConn(intID){using(SqlConnectioncon=newSqlConnection("contextconnection=true")){//con.Open();yieldreturn"Anthony";}}pub
我应用了SQLServerDataToolspatch到VisualStudio2012(Premium)并在C#中创建了一个SQLServerCLR用户定义函数项目:publicpartialclassUserDefinedFunctions{[Microsoft.SqlServer.Server.SqlFunction]publicstaticSqlInt32Add42(SqlInt32in_param){SqlInt32retval=in_param+42;//Setbreakpointhere.returnretval;}}在SQLServer对象资源管理器Pane中,我右键单
是否有任何多线程缓存机制可以在SQLCLR函数中工作而不需要将程序集注册为“不安全”?同样描述了inthispost,简单地使用lock语句将在安全程序集上抛出异常:System.Security.HostProtectionException:AttemptedtoperformanoperationthatwasforbiddenbytheCLRhost.Theprotectedresources(onlyavailablewithfulltrust)were:AllThedemandedresourceswere:Synchronization,ExternalThreading
我在SQL2005数据库中有一个负载很重的表(很多插入/更新/删除)。我想对所有这些更改进行一些后期处理,以尽可能接近实时(异步操作,以免以任何方式锁定表)。我看过许多可能的解决方案,但似乎找不到适合的整洁解决方案。后处理的种类也相当繁重,以至于Windows侦听器服务实际上会将处理传递给许多机器。但是,应用程序的这一部分已经启动并运行,完全是异步的,不是我需要的帮助-我只想提及这一点,因为它会影响设计决策,因为我们不能只在其中加载一些CLR对象。DB完成处理。因此,简单的问题仍然存在:表中的数据更改,我想在远程服务器上的C#代码中进行一些处理。目前,我们已经提出了使用sql触发器的方
我正在尝试通过SQLCLR帮助一位私有(private)friend(现在也是客户)相关问题。他有一个带有3个.NET程序集的数据库的SQLServer嵌入其中。他让我帮他从里面提取程序集数据库并将它们保存为磁盘上的.dll文件。这可能吗? 最佳答案 是的,这是可能的。程序集的实际二进制表示形式在您的服务器的SQL目录中。即,如果您在之间运行连接sys.assembly_files和sys.assemblies您可以获得所有信息需要。程序集二进制文件位于sys.assembly_files的内容列中看法。但是为了从SQLServer
我在SQLServer中使用CLR存储过程已有一段时间了,但我仍然想知道使用它们的最佳情况是什么。MSDN提供了一些使用指南,例如繁重的字符串操作(regex),或替换声明大量表变量和游标的T-SQL。我很想知道SO用户正在使用CLR存储过程以及示例/基准解决什么问题。例如,我发现CLR存储过程+SSRS是将数据操作逻辑从SSRS和T-SQL中取出并放入更易于阅读和操作的托管代码中的好方法。 最佳答案 许多需要非规范化和/或顺序操作的问题都可以由CLR很好地处理,并且可以用来显着提高性能,而不会牺牲SQL端的可用性(很多)。您可以采
我正在使用C#创建一个SQLCLR过程来对MongoDB执行一些基本操作,例如获取集合的内容、插入文档等。但我得到“MongoDB.Bson.Serialization.BsonSerializer”的类型初始值设定项引发异常。有什么想法吗??来自C#的完全相同的代码直接工作正常。我正在为Mongo版本1.10、.NETFramework3.5、MicrosoftSQLServer2008(RTM)使用C#驱动程序。您可以在下面找到堆栈跟踪示例:无法从数据库中删除集合错误:“MongoDB.Bson.Serialization.BsonSerializer”的类型初始值设定项引发异常。