Tag: sql

我可以使用VARCHAR作为PRIMARY KEY吗?

我有一个表来存储优惠券/折扣,我想使用coupon_code列作为主键,这是一个VARCHAR 。 我的理由是,每个优惠券将有一个唯一的代码,我将运行的唯一命令是SELECT … FROM … WHERE coupon_code='..' 我不会做任何连接或索引,而且我也没有看到这个表中有超过几百个条目。 在我看来,这将是好的,但我不知道是否有什么我失踪/没有考虑。

在postgreSQL中向左填充零

我对PostgreSQL相对来说比较新,我知道如何在SQL Server的左边填一个零,但是我正努力在PostgreSQL中弄清楚这一点。 我有一个数字列,其中最大位数为3,最小为1:如果是一位数字,则左边有两个零,如果是两位数字,则有1位,例如001,058,123。 在SQL Server中,我可以使用以下方法: RIGHT('000' + cast([Column1] as varchar(3)), 3) as [Column2] 这在PostgreSQL中不存在。 任何帮助,将不胜感激。

如何插入包含“&”的string

我如何写一个包含&字符的插入语句? 例如,如果我想将“J&J Construction”插入到数据库的一列中。 我不确定它是否有所作为,但我正在使用Oracle 9i。

如何find什么是locking我的表

我有一个SQL表,突然之间不能返回数据,除非我在结尾包含“(nolock)”,这表明某种锁在我的表上。 我已经用dm_tran_locks做了一些尝试,以确定表中有多less个锁,但是如何识别locking它们的内容(即dm_tran_locks的请求元素)? 编辑:我知道关于pre SQL 2005 sp_lock,但现在,该sp已被弃用,AFAIK正确的方式来做到这一点与dm_tran_locks。 我正在使用SQL Server 2008 R2。

我应该使用什么列数据types来存储大量的文本或HTML

我有一个表中的列在过去是varchar(255)在开始,由于一些devise更改现在是varchar(1536)= 1024 + 512.我不会search或索引此字段,是否有意义要将此值存储在除varchar以外的其他数据types中,如果您想优化性能?

SQL中DateTime字段的时间部分

我将如何能够在SQL中提取DateTime字段的时间部分? 对于我的项目,我不得不返回date时间为5pm的时间戳的数据

MS SQLdate只有没有时间

题 大家好, 我已经有一段时间困惑了很长一段时间,基本上使用T-SQL来实现DateTime SQLtypes。 本质上,我想要采取2008-12-1 14:30:12的date时间值,并使其2008-12-1 00:00:00。 我们为报告运行的查询中有很多在WHERE子句中使用了一个date值,但是我有一天的开始和结束date值,并使用BETWEEN,或者我find了其他方法。 目前我使用以下: WHERE CAST(CONVERT(VARCHAR, [tstamp], 102) AS DATETIME) = @dateParam 不过,这似乎有点笨重。 我希望能有像CAST([tstamp] AS DATE)这样更简单的东西, 有些地方在线推荐使用DATEPART()函数,但是最后我得到了这样的结果: WHERE DATEPART(year, [tstamp]) = DATEPART(year, @dateParam) AND DATEPART(month, [tstamp]) = DATEPART(month, @dateParam) AND DATEPART(day, [tstamp]) = DATEPART(day, @dateParam) WHERE DATEPART(year, [tstamp]) = DATEPART(year, @dateParam) AND DATEPART(month, [tstamp]) = DATEPART(month, @dateParam) AND DATEPART(day, [tstamp]) […]

findSQL语句的LINQ语句最简单的方法是什么?

我是销售ASP.NET MVC3应用程序的公司的SQL Server DBA,该应用程序使用LINQ和Entity Framework 4来访问所有数据库。 当我在LINQ生成的SQL Server计划caching中发现一个效率低下的查询时,我希望能够在源代码中find该LINQ语句,以便对其进行优化。 find生成给定SQL语句的LINQ的最佳方法是什么? 例如,有什么办法把一个条目放在一个configuration文件中,或者以某种方式修饰代码,以便类和方法名或LINQ语句本身作为注释包含在生成的SQL中?

当参数为空时插入默认值

我有一个表有一个默认值的列: create table t ( value varchar(50) default ('something') ) 我正在使用存储的过程将值插入到此表中: create procedure t_insert ( @value varchar(50) = null ) as insert into t (value) values (@value) 问题是,如何在@value为null时使用默认null ? 我试过了: insert into t (value) values ( isnull(@value, default) ) 这显然不起作用。 也试过了一个case陈述,但这也不太公平。 还有其他build议吗? 我是否以错误的方式去做这件事? 更新:我试图做到这一点, 而不必: 保持多个地方的default值,并 使用多个insert语句。 如果这是不可能的,那么我想我只能忍受它。 这似乎应该是可以实现的。 注意:我的实际表格有多个列。 我只是在写一个例子。

从一个没有ONE字段的entityframework中检索一个对象

我正在使用entity framework来连接数据库。 我有一个小问题: 我有一个表有一个varbinary(MAX)列(文件stream)。 我使用SQL请求来pipe理“数据”部分,但其余的EF(文件的元数据)。 我有一个代码,必须获得文件的所有文件ID,文件名,GUID,修改date…。 这根本不需要“数据”字段。 有没有办法检索一个列表,但没有填写这个列? 就像是 context.Files.Where(f=>f.xyz).Exclude(f=>f.Data).ToList(); ?? 我知道我可以创build匿名对象,但是我需要将结果传递给一个方法,所以没有匿名方法。 我不想把它放在一个匿名types列表中,然后创build一个非匿名types(File)的列表。 目标是避免这种情况: using(RsSolutionsEntities context = new RsSolutionsEntities()) { var file = context.Files .Where(f => f.Id == idFile) .Select(f => new { f.Id, f.MimeType, f.Size, f.FileName, f.DataType, f.DateModification, f.FileId }).FirstOrDefault(); return new File() { DataType = file.DataType, DateModification = file.DateModification, FileId = file.FileId, FileName […]