Tag: sql

为什么不使用varchar(max)?

在数据库devise方面,我有点老,所以我完全是在列中使用正确的数据大小。 但是,当为一个朋友查看数据库时,我注意到他使用了varchar(max) 。 现在,我的直接想法是把它扔回给他,让他改变它。 但是后来我想了一下,不能拿出一个很好的理由让他不要使用它(如果你想知道的话,他使用了一个casetypes的工具来生成数据库)。 我一直在研究varchar(max)用法的主题,我真的不能想出任何好的理由让他不要使用它。 他不使用索引列,坐在数据库上的应用程序对input有限制,所以不允许在字段中input大量数据。 任何帮助将不胜感激,帮助我让他看到光明:)。

将列添加到表中,然后在事务内部更新它

我正在创build将在MS SQL服务器中运行的脚本。 该脚本将运行多个语句,并且需要是事务性的,如果其中一个语句失败,则整体执行被停止并且任何更改被回滚。 在发出ALTER TABLE语句向表中添加列并更新新添加的列时,我无法创build此事务模型。 为了立即访问新添加的列,我使用GO命令来执行ALTER TABLE语句,然后调用我的UPDATE语句。 我面临的问题是我不能在IF语句中发出GO命令。 IF语句在我的事务模型中很重要。 这是我试图运行的脚本的示例代码。 另外请注意,发出一个GO命令,将会放弃@errorCodevariables,并且在使用之前需要在代码中声明这个variables(这不在下面的代码中)。 BEGIN TRANSACTION DECLARE @errorCode INT SET @errorCode = @@ERROR — ********************************** — * Settings — ********************************** IF @errorCode = 0 BEGIN BEGIN TRY ALTER TABLE Color ADD [CodeID] [uniqueidentifier] NOT NULL DEFAULT ('{00000000-0000-0000-0000-000000000000}') GO END TRY BEGIN CATCH SET @errorCode = @@ERROR END CATCH […]

SQL(DDL)脚本的推荐位置是什么?

Maven标准目录结构中 SQL,DDL,…脚本的推荐位置是什么? 我敢打赌,几乎每个Web项目都使用一个DB和一些需要存储在某个地方的SQL脚本,那么可能是保存这些文件的“最佳”位置? 请指教。

SELECT … FOR XML PATH(''),1,1)是什么意思?

我正在学习SQL中的一个问题 ,在这里我看到了这个的用法,可以让我明白什么XMLpath('')在SQL意味着什么? 是的,我浏览网页我不太了解它! 我没有得到这个东西,现在这段代码做什么?(只select部分) declare @t table ( Id int, Name varchar(10) ) insert into @t select 1,'a' union all select 1,'b' union all select 2,'c' union all select 2,'d' select ID, stuff( ( select ','+ [Name] from @t where Id = t.Id for XML path('') ),1,1,'') from (select distinct ID from @t )t

为查询string声明variables

嘿,所有,我想知道是否有办法在MS SQL Server 2005中做到这一点: DECLARE @theDate varchar(60) SET @theDate = '''2010-01-01'' AND ''2010-08-31 23:59:59''' SELECT AdministratorCode, SUM(Total) as theTotal, SUM(WOD.Quantity) as theQty, AVG(Total) as avgTotal, (SELECT SUM(tblWOD.Amount) FROM tblWOD JOIN tblWO on tblWOD.OrderID = tblWO.ID WHERE tblWO.Approved = '1' AND tblWO.AdministratorCode = tblWO.AdministratorCode AND tblWO.OrderDate BETWEEN @theDate ) … etc 可能做什么? 大卫

如何在Liunx / Ubuntu上的MySQL中select一个空间名称

我正在开发一个项目,其他开发人员创build了一个列名为'Business Name' 。 这是两个词之间的空白。 我现在是一名Linux用户; 如果我使用“Business Name”运行SELECT语句,则表示没有名称为“Business”的列。 我怎么解决这个问题?

sql,按列Asorting,然后按列Bsorting

如何编写sql,以便可以按列A比列Bsorting结果。如下所示: SELECT * FROM tbl WHERE predictor ORDER by col_A and ORDER by col_B

PostgreSQL – 获取列的最大值的行

我正在处理一个包含time_stamp,usr_id,transaction_id和lives_remaining列的logging的Postgres表(称为“lives”)。 我需要一个查询,将给我每个usr_id最近lives_remaining总 有多个用户(不同的usr_id的) time_stamp不是一个唯一的标识符:有时用户事件(在表中按行排列)将以相同的time_stamp出现。 trans_id只有在非常小的时间范围内才是唯一的:随着时间的推移它会重复 remaining_lives(对于给定的用户)可随时间增加和减less 例: TIME_STAMP | lives_remaining | usr_id | TRANS_ID —————————————– 07:00 | 1 | 1 | 1 09:00 | 4 | 2 | 2 10:00 | 2 | 3 | 3 10:00 | 1 | 2 | 4 11:00 | 4 | 1 | 五 11:00 | 3 | 1 […]

如何获得从今天的date前30天

如何在SQL中获得今天的30天。

Oracle中的OVER子句

Oracle中OVER子句的含义是什么?