我想使用T-SQL将表移动到特定的Schema中?我正在使用SQL Server 2008.
在SQL Server下,是否有一种简单的方法来过滤sp_who2的输出?例如,我想只显示某个数据库的行.
假设我有一个带有数字列的表(让我们称之为"得分").
我想生成一个计数表,显示每个范围内出现的分数.
例如:
score range | number of occurrences ------------------------------------- 0-9 | 11 10-19 | 14 20-29 | 3 ... | ...
在这个例子中,有11行,得分在0到9的范围内,14行,得分在10到19的范围内,3行得分在20-29的范围内.
有没有简单的方法来设置它?您有什么推荐的吗?
在SQL Server中,我在表上有一个新列:
ALTER TABLE t_tableName
ADD newColumn NOT NULL
Run Code Online (Sandbox Code Playgroud)
这失败是因为我指定了NOT NULL而没有指定默认约束.该表不应具有默认约束.
为了解决这个问题,我可以使用默认约束创建表,然后将其删除.
但是,似乎没有任何方法可以指定默认约束应该作为此语句的一部分命名,因此我摆脱它的唯一方法是使用一个存储过程在sys.default_constraints中查找它表.
对于可能发生很多事情的操作来说,这有点混乱/冗长.有没有人有更好的解决方案呢?
我已经看到了命名存储过程的各种规则.
有些人使用usp_作为sproc名称的前缀,其他人使用应用程序名称的缩写作为前缀,还有其他人使用所有者名称.您不应该在SQL Server中使用sp_,除非您真正的意思.
有些人用动词(Get,Add,Save,Remove)启动proc名称.其他人则强调实体名称.
在具有数百个sprocs的数据库中,当您认为已存在时,可能很难滚动并找到合适的sproc.命名约定可以使定位sproc更容易.
你使用命名约定吗?请描述一下,并解释为什么你喜欢它而不是其他选择.
答复摘要:
为什么我选择我做的答案:有很多好的回答.谢谢你们!如你所见,选择一个是非常困难的.我选择的那个与我产生共鸣.我遵循他描述的相同路径 - 尝试使用Verb + Noun然后无法找到适用于Customer的所有sprocs.
能够定位现有的sproc,或确定是否存在,甚至是非常重要的.如果有人无意中创建了具有其他名称的重复sproc,则可能会出现严重问题.
由于我通常使用包含数百个sprocs的非常大的应用程序,因此我倾向于使用最容易找到的命名方法.对于较小的应用程序,我可能会提倡Verb + Noun,因为它遵循方法名称的一般编码约定.
他还提倡使用app name作为前缀,而不是使用不太有用的usp_.有几个人指出,有时数据库包含多个应用程序的sprocs.因此,使用app name前缀有助于隔离sprocs并帮助DBA和其他人确定sproc用于哪个应用程序.
我有:
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".
我该如何实现这一目标?
我知道重构是"改变程序的结构,以便不改变功能".我正在与我在大学的最后一年项目中与我合作的一些人谈话,我很惊讶他们有更广泛的(因为想要更好的词)重构的观点.
我认为重构就像提取方法和重命名类一样.他们还建议之类的东西改变的数据结构(如Java的LinkedList一个ArrayList),改变算法(使用合并排序而不是冒泡排序的),甚至重写大量代码的重构.
我很确定他们错了,但我无法给出一个很好的理由,因为他们的建议确实改变了程序(并且可能使其更好)而不改变其行为.我是对的,更重要的是,为什么?
当在数据库中用作主键时,有人曾测量过Sequential Guid与Standard Guid的性能吗?
如果在SQL Server中的View上使用"WITH NOLOCK"查询提示,它是否会将该提示传播到视图定义本身,即使NOLOCK未用于View定义中的原始表?需要这个的原因是,有时支持人员想要进行大量耗时的查询,但不希望使用应用程序本身内的视图强制锁定所有查询.
我有类型为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元素的方法?
sql-server ×5
sql ×3
t-sql ×2
alter-table ×1
c# ×1
constraints ×1
database ×1
datacolumn ×1
datatable ×1
guid ×1
linq ×1
locking ×1
primary-key ×1
refactoring ×1
schema ×1
types ×1