小编Mit*_*eat的帖子

如何将表移动到T-SQL中的模式中

我想使用T-SQL将表移动到特定的Schema中?我正在使用SQL Server 2008.

t-sql sql-server schema sql-server-2008 sql-server-2016

262
推荐指数
2
解决办法
15万
查看次数

SQL Server:过滤sp_who2的输出

在SQL Server下,是否有一种简单的方法来过滤sp_who2的输出?例如,我想只显示某个数据库的行.

sql-server sql-server-2016

186
推荐指数
6
解决办法
16万
查看次数

在SQL中,如何在范围内"分组"?

假设我有一个带有数字列的表(让我们称之为"得分").

我想生成一个计数表,显示每个范围内出现的分数.

例如:

score range  | number of occurrences
-------------------------------------
   0-9       |        11
  10-19      |        14
  20-29      |         3
   ...       |       ...

在这个例子中,有11行,得分在0到9的范围内,14行,得分在10到19的范围内,3行得分在20-29的范围内.

有没有简单的方法来设置它?您有什么推荐的吗?

sql t-sql sql-server

169
推荐指数
8
解决办法
16万
查看次数

我可以在SQL Server的add column语句中创建命名的默认约束吗?

在SQL Server中,我在表上有一个新列:

ALTER TABLE t_tableName 
    ADD newColumn NOT NULL
Run Code Online (Sandbox Code Playgroud)

这失败是因为我指定了NOT NULL而没有指定默认约束.该表不应具有默认约束.

为了解决这个问题,我可以使用默认约束创建表,然后将其删除.

但是,似乎没有任何方法可以指定默认约束应该作为此语句的一部分命名,因此我摆脱它的唯一方法是使用一个存储过程在sys.default_constraints中查找它表.

对于可能发生很多事情的操作来说,这有点混乱/冗长.有没有人有更好的解决方案呢?

sql-server constraints alter-table code-maintainability

144
推荐指数
3
解决办法
7万
查看次数

您对存储过程的命名约定是什么?

我已经看到了命名存储过程的各种规则.

有些人使用usp_作为sproc名称的前缀,其他人使用应用程序名称的缩写作为前缀,还有其他人使用所有者名称.您不应该在SQL Server中使用sp_,除非您真正的意思.

有些人用动词(Get,Add,Save,Remove)启动proc名称.其他人则强调实体名称.

在具有数百个sprocs的数据库中,当您认为已存在时,可能很难滚动并找到合适的sproc.命名约定可以使定位sproc更容易.

你使用命名约定吗?请描述一下,并解释为什么你喜欢它而不是其他选择.

答复摘要:

  • 每个人似乎都提倡命名的一致性,对于每个人来说,使用与使用特定命名约定相同的命名约定可能更为重要.
  • 前缀:虽然很多人使用usp_或类似的东西(但很少sp_),但许多其他人使用数据库或应用程序名称.一个聪明的DBA使用gen,rpt和tsk来区分一般的CRUD sprocs和用于报告或任务的那些.
  • 动词+名词似乎比Noun + Verb稍微受欢迎.有些人对动词使用SQL关键字(选择,插入,更新,删除),而其他人则使用非SQL动词(或缩写),如Get和Add.有些人区分单数和复数名词,以表明是否正在检索一个或多个记录.
  • 在适当的情况下,最后建议使用另一个短语.GetCustomerById,GetCustomerBySaleDate.
  • 有些人在名称段之间使用下划线,有些人则避免使用下划线.app_ Get_Customer与appGetCustomer - 我想这是一个可读性的问题.
  • 可以将大量的sprocs分隔为Oracle包或Management Studio(SQL Server)解决方案和项目,或SQL Server模式.
  • 应该避免使用不可思议的缩写.

为什么我选择我做的答案:有很多好的回答.谢谢你们!如你所见,选择一个是非常困难的.我选择的那个与我产生共鸣.我遵循他描述的相同路径 - 尝试使用Verb + Noun然后无法找到适用于Customer的所有sprocs.

能够定位现有的sproc,或确定是否存在,甚至是非常重要的.如果有人无意中创建了具有其他名称的重复sproc,则可能会出现严重问题.

由于我通常使用包含数百个sprocs的非常大的应用程序,因此我倾向于使用最容易找到的命名方法.对于较小的应用程序,我可能会提倡Verb + Noun,因为它遵循方法名称的一般编码约定.

他还提倡使用app name作为前缀,而不是使用不太有用的usp_.有几个人指出,有时数据库包含多个应用程序的sprocs.因此,使用app name前缀有助于隔离sprocs并帮助DBA和其他人确定sproc用于哪个应用程序.

sql stored-procedures naming-conventions

120
推荐指数
7
解决办法
7万
查看次数

如何更改DataTable中DataColumn的DataType?

我有:

DataTable Table = new DataTable;
SqlConnection = new System.Data.SqlClient.SqlConnection("Data Source=" + ServerName + ";Initial Catalog=" + DatabaseName + ";Integrated Security=SSPI; Connect Timeout=120");

SqlDataAdapter adapter = new SqlDataAdapter("Select * from " + TableName, Connection);
adapter.FillSchema(Table, SchemaType.Source);
adapter.Fill(Table);

DataColumn column = DataTable.Columns[0];
Run Code Online (Sandbox Code Playgroud)

我想做的是:

假设当前column.DataType.Name"Double".我希望它成为"Int32".

我该如何实现这一目标?

c# datatable types datacolumn

112
推荐指数
9
解决办法
29万
查看次数

什么是重构?什么是修改代码?

我知道重构是"改变程序的结构,以便不改变功能".我正在与我在大学的最后一年项目中与我合作的一些人谈话,我很惊讶他们有更广泛的(因为想要更好的词)重构的观点.

我认为重构就像提取方法和重命名类一样.他们还建议之类的东西改变的数据结构(如Java的LinkedList一个ArrayList),改变算法(使用合并排序而不是冒泡排序的),甚至重写大量代码的重构.

我很确定他们错了,但我无法给出一个很好的理由,因为他们的建议确实改变了程序(并且可能使其更好)而不改变其行为.我是对的,更重要的是,为什么?

refactoring

75
推荐指数
7
解决办法
7万
查看次数

Sequential Guid相对于标准Guid的性能提升有哪些?

当在数据库中用作主键时,有人曾测量过Sequential Guid与Standard Guid的性能吗?

database guid primary-key

65
推荐指数
5
解决办法
3万
查看次数

在查询中使用WITH NOLOCK表提示使用视图 - 它是否在视图中传播?

如果在SQL Server中的View上使用"WITH NOLOCK"查询提示,它是否会将该提示传播到视图定义本身,即使NOLOCK未用于View定义中的原始表?需要这个的原因是,有时支持人员想要进行大量耗时的查询,但不希望使用应用程序本身内的视图强制锁定所有查询.

sql sql-server locking

57
推荐指数
2
解决办法
4万
查看次数

在Select中过滤Null值

我有类型为T的对象的IQueryable列表,我想将其转换为K类型的对象

List<K> tranformedList = originalList.Select(x => transform(x)).ToList();
Run Code Online (Sandbox Code Playgroud)

如果转换函数不能转换对象,则返回null.如果我想过滤掉null元素,我可以调用它

List<K> tranformedList = originalList.Select(x => transform(x))
                                     .Where(y => y != default(K))
                                     .ToList();
Run Code Online (Sandbox Code Playgroud)

或者在LINQ中调用Select时是否还有其他过滤掉null元素的方法?

linq

56
推荐指数
2
解决办法
7万
查看次数