我正面临一个相当有趣的问题。 我有一个表结构如下: CREATE TABLE [dbo].[Event] ( Id int IDENTITY(1,1) NOT NULL, ApplicationId nvarchar(32) NOT NULL, Name nvarchar(128) NOT NULL, Description nvarchar(256) NULL, Date nvarchar(16) NOT NULL, Time nvarchar(16) NOT NULL, EventType nvarchar(16) NOT NULL, CONSTRAINT Event_PK PRIMARY KEY CLUSTERED ( Id ) WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = […]
我正在试图写这个查询来查找具有特定值的特定列的所有表。 这是我迄今为止所做的 – EXEC sp_MSforeachtable @command1=' IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA=PARSENAME("?",2) AND TABLE_NAME=PARSENAME("?",1) AND COLUMN_NAME="EMP_CODE") BEGIN IF (SELECT COUNT(*) FROM ? WHERE EMP_CODE="HO081")>0 BEGIN SELECT * FROM ? WHERE EMP_CODE="HO081" END END ' 我希望我的内涵很清楚,我只想selectEMP_CODE列所在的那些表,在这些表中我想select那些EMP_CODE='HO081' 。 编辑 – 现在它是这样的。 但是我不能在查询中replace@EMPCODEvariables。 DECLARE @EMPCODE AS VARCHAR(20) SET @EMPCODE='HO081' EXEC sp_MSforeachtable @command1=' DECLARE @COUNT AS INT […]
比方说,我有一个列IDB和标题的表。 我需要更改标题列的所有值: 从“a-1”到“a1” 从“a.1”到“a1” 从“b-1”到“b1” 从“b.1”到“b1”。 现在,我正在执行两个UPDATE语句: UPDATE tbl SET title='a1' WHERE title IN ('a-1', 'a.1') UPDATE tbl SET title='b1' WHERE title IN ('b-1', 'b.1') 这完全不是问题,如果表很小,单个语句在一秒钟内完成,只需要执行几条语句。 你可能猜到了 – 我有一个巨大的表来处理(一个语句在大约90秒内完成),我有大量的更新来执行。 那么,是否可以合并更新,以便只扫描一次表格? 或者,在这样的情况下,还有更好的办法。 编辑:请注意,我正在使用的真实数据和我必须执行的数据的更改并不是真的那么简单 – string更长,他们不遵循任何模式(这是用户数据,所以没有假设可以做成 – 可以是任何东西)。
我知道这已经被要求死亡,我知道为什么SQL Server不会让你这样做。 但有没有解决方法,除了使用扩展存储过程? 请不要告诉我把我的function转换成一个过程… 所以我真正要问的是:有没有办法从一个函数内运行存储过程? 编辑: 点certificate:有一个方法,但它是如此错误,我不会这样做。 我要把它改成一个存储过程并在其他地方执行。
我有一个名为sequence的列。 该列中的数据看起来像1,2,3,4,5,7,9,10,15。 我需要从表中find缺less的序列号。 什么SQL查询将从我的表中find丢失的序列号? 我期待像这样的结果 Missing numbers ————— 6 8 11 12 13 14 我只使用一个表。 我试过下面的查询,但没有得到我想要的结果。 select de.sequence + 1 as sequence from dataentry as de left outer join dataentry as de1 on de.sequence + 1 = de1.sequence where de1.sequence is null order by sequence asc;
作为新的entity framework,我真的很困扰如何处理这一系列问题。 在我目前正在进行的项目中,整个网站与EF模型高度集成。 起初,使用dependency injection引导程序来控制对EF上下文的访问。 出于操作原因,我们无法使用DI库。 我删除了这个,并在必要时使用了上下文对象的单个实例的模型。 我开始得到以下例外: types“XXX”已被映射多次。 我们得出的结论是,不同的背景是造成这个问题。 然后,我将上下文对象抽象成一个单独的静态实例,每个线程/页面都访问它。 我现在得到几个有关交易的例外之一: 新的事务是不允许的,因为会话中还有其他线程正在运行。 事务操作无法执行,因为在此事务上有未决的请求。 当分配给命令的连接处于未决的本地事务中时,ExecuteReader需要该命令进行事务。 该命令的Transaction属性尚未初始化。 最后一个例外发生在加载操作上。 我没有试图将上下文状态保存回失败的线程上的Db。 还有另外一个线程正在执行这样的操作。 这些例外情况最好是断断续续的,但是我设法让网站进入一个由于交易locking而拒绝新连接的状态。 不幸的是我找不到例外的细节。 我想我的第一个问题是,EF模型应该从一个静态单个实例使用? 另外,是否可以删除EF中的交易? 我试过使用一个TransactionScope对象没有成功… 说实话,我在这里呆了很多,并不明白为什么(应该是)相当简单的操作导致这样的问题…
我有两列: job_start job_end 2011-11-02 12:20:37.247 2011-11-02 13:35:14.613 如何使用T-SQL来查找作业开始和作业结束之间的时间间隔? 我试过这个: select (job_end – job_start) from tableA 但结果是: 1900-01-01 01:14:37.367
我正在寻找一个好的SQL语句来从一个表中select前一天的所有行。 该表包含一个date时间列。 我正在使用SQL Server 2005。
如何在SQL Server 2005中分页结果? 我在SQL Server 2000中试过,但没有可靠的方法来做到这一点。 我现在想知道如果SQL Server 2005有任何内置的方法? 我的意思是分页,例如,如果我通过他们的用户名列出用户,我希望能够只返回前10条logging,然后是下10条logging等等。 任何帮助将不胜感激。
我一直在抨击SQL Server 2005试图获取大量数据。 我已经给了一个有近300个表的数据库,我需要把它变成一个MySQL数据库。 我的第一个电话是使用bcp,但不幸的是,它不会产生有效的CSV – string不封装,所以你不能处理任何有一个string的行(或任何你用作分隔符)我仍然需要手写所有的创build表语句,显然CSV不会告诉你有关数据types的任何信息。 更好的是,如果有一些工具可以连接到SQL Server和MySQL,然后做一个副本。 你失去了视图,存储过程,触发器等等,但是复制一个只使用基本types从一个数据库到另一个数据库的表并不难…是吗? 有人知道这样的工具吗? 我不介意它做了多less假设或简化发生,只要它支持整数,浮点数,date时间和string。 无论如何,我必须做很多修剪,规范化等等,所以我不在乎保持键,关系或类似的东西,但是我需要最初的一组数据。