Tag: sql

在交易中使用“GO”

我正在构build一个Web应用程序,试图在App_Start上安装/升级数据库。 安装程序的一部分是确保数据库安装了asp.netfunction。 为此,我正在使用System.Web.Management.SqlServices对象。 我的意图是做一个SQL事务中的所有数据库工作,如果有任何失败,回滚事务并保持数据库不变。 SqlServices对象有一个方法“安装”,它需要一个ConnectionString而不是一个事务。 所以相反,我使用SqlServices.GenerateApplicationServicesScripts如下所示: string script = SqlServices.GenerateApplicationServicesScripts(true, SqlFeatures.All, _connection.Database); SqlHelper.ExecuteNonQuery(transaction, CommandType.Text, script, …); 然后使用企业库中的SqlHelper。 但是这会抛出一个exception与一个错误的对接,一些在下面 Incorrect syntax near 'GO'. Incorrect syntax near 'GO'. Incorrect syntax near 'GO'. Incorrect syntax near 'GO'. Incorrect syntax near the keyword 'USE'. Incorrect syntax near the keyword 'CREATE'. Incorrect syntax near 'GO'. The variable name '@cmd' has […]

SQL比较两个表中的数据

我有两个表格TableA和TableB具有相同的列格式,例如两个表格TableA和TableB有列 ABCDEF A和B是主键。 如何编写SQL以检查具有相同主键的TableA和TableB是否在每列中包含完全相同的值。 这意味着这两个表具有完全相同的数据。

如何在Linq to SQLexpression式中使用SQL的GETDATE()和DATEADD()?

如果我有一个像这样的Linq to SQLexpression式: from subscription in dbContext.Subscriptions where subscription.Expires > DateTime.Now select subscription 我希望这个使用SQL Server的GETDATE()函数,而不是运行C#程序的机器的时间。 接下来的问题将是如何翻译这个: DateTime.Now.AddDays(2) 对此: DATEADD(dd, 2, GETDATE())

在SQL Server中将varchar转换为uniqueidentifier

我无法控制模式的表格包含一个定义为varchar(50)的列,该列以“a89b1acd95016ae6b9c8aabb07da2010”(无连字符)格式存储uniqueidentifiers 我想在SQL中将这些转换为uniqueidentifiers传递给.net guid。 但是,以下查询行不适用于我: select cast('a89b1acd95016ae6b9c8aabb07da2010' as uniqueidentifier) select convert(uniqueidentifier, 'a89b1acd95016ae6b9c8aabb07da2010') 并导致: Msg 8169,Level 16,State 2,Line 1 从string转换为uniqueidentifier时转换失败。 使用连字符uniqueidentifier相同的查询工作正常,但数据不存储在该格式。 是否有另一种(有效的)方式将这些string转换为SQL中的uniqueidentifiers。 – 我不想用.Net代码来做。

批量插入到使用.NET的Oracle

使用.NET批量插入Oracle的最快方法是什么? 我需要使用.NET将大约160Klogging传输到Oracle。 目前,我正在使用插入语句并执行它160K次,大约需要25分钟才能完成。 源数据存储在DataTable中,作为从另一个数据库(MySQL)查询的结果, 有没有更好的方法来做到这一点? 编辑 :我目前正在使用System.Data.OracleClient,但愿意接受使用其他提供商(ODP.NET,DevArt等..)的解决scheme。

EXECUTE之后的事务计数表示不匹配的BEGIN和COMMIT语句的数量。 前一个计数= 1,当前计数= 0

我有一个插入存储过程将馈送数据到Table1并从Table1中获取Column1值,并调用将提供Table2的第二个存储过程。 但是当我把第二存储过程称为: Exec USPStoredProcName 它给我错误如下: EXECUTE之后的事务计数表示不匹配的BEGIN和COMMIT语句的数量。 前一个计数= 1,当前计数= 0。 我已经阅读了其他这样的问题的答案,我无法find确切的提交计数正在搞砸。

PL / SQL中的函数和过程有什么区别?

PL / SQL中的函数和过程有什么区别?

如何从SQLAlchemyexpression式获取原始的编译SQL查询?

我有一个SQLAlchemy查询对象,并希望得到编译的SQL语句的文本,其所有参数绑定(例如没有%s或其他variables等待被语句编译器或MySQLdb方言引擎等绑定)。 在查询中调用str()显示如下所示的内容: SELECT id WHERE date_added <= %s AND date_added >= %s ORDER BY count DESC 我试过查找query._params,但它是一个空字典。 我使用sqlalchemy.ext.compiler.compiles修饰器的这个例子编写了我自己的编译器,但是即使这个语句仍然有我想要数据的%s 。 我不能完全弄清楚什么时候我的参数混入来创build查询; 当检查查询对象时,它们总是一个空的字典(尽pipe查询执行正常,当您打开回显logging时,引擎会将其打印出来)。 我开始收到SQLAlchemy不希望我知道底层查询的消息,因为它打破了expression式API接口的所有不同DB-API的一般性质。 我不介意在查询之前执行查询是什么; 我只是想知道!

条件唯一约束

我有一种情况,我需要强制一组列的唯一约束,但只有一列的一个值。 所以例如我有一个像表(ID,名称,RecordStatus)表。 RecordStatus只能有一个值1或2(活动或删除),我想创build一个唯一的约束(ID,RecordStatus)只有当RecordStatus = 1,因为我不在乎是否有多个删除logging相同ID。 除了写触发器,我可以这样做吗? 我正在使用SQL Server 2005。

SQL查询的执行顺序

我对这个查询的执行顺序感到困惑,请解释一下。 我很困惑当应用连接时,函数被调用,一个新的列添加与案例和添加序列号。 请解释所有这些的执行顺序。 select Row_number() OVER(ORDER BY (SELECT 1)) AS 'Serial Number', EP.FirstName,Ep.LastName,[dbo].[GetBookingRoleName](ES.UserId,EP.BookingRole) as RoleName, (select top 1 convert(varchar(10),eventDate,103)from [3rdi_EventDates] where EventId=13) as EventDate, (CASE [dbo].[GetBookingRoleName](ES.UserId,EP.BookingRole) WHEN '90 Day Client' THEN 'DC' WHEN 'Association Client' THEN 'DC' WHEN 'Autism Whisperer' THEN 'DC' WHEN 'CampII' THEN 'AD' WHEN 'Captain' THEN 'AD' WHEN 'Chiropractic Assistant' THEN 'AD' […]