我注意到,当人们谈论在 SQL Server 中使用临时表时,很多人都提到了“具体化”这个词。有人可以扩展一下这意味着什么吗?我只是想更好地理解这对于使用临时表意味着什么?
谢谢!
S
如果你在SQL Server中删除一个包含键,索引,约束等的表,它也会删除它们吗?我只是想知道我何时构建我的脚本,如果我需要为所有这些脚本创建drop脚本,或者我可以简单地删除表格?
谢谢,
小号
我正在考虑在我的一些查询中使用一些用户定义的函数调用,而不是使用一堆内联case语句.内联语句可能会表现得更好,但这些函数使得查看和维护更容易.
我只是想了解UDF的典型最佳实践是什么?我意识到在标准(Where子句)中使用它们会产生一些重大的性能影响.
特别是在你的case块中有很多when语句甚至是嵌套case语句的情况下.
谢谢,
小号
在表上执行大型删除后,我应该采取哪些步骤来确保将这些行占用的空间重新分配回SQL Server?在该表上运行统计信息等?
也许我不需要做任何事情,只是想知道如果有任何后续步骤会怎样.
谢谢,
小号
我已经介绍了几种不同的方法,用于将数据插入SQL Server(For FileStream).插入FileStream对象的最佳方法是什么?下面的方法之间的主要区别是一个直接执行插入,另一个放在FileStream对象的占位符中.
一种方法是他们通过插件直接通过C#插入文档:
链接:FileStream
con.Open();
string sql = "INSERT INTO MyFsTable VALUES (@fData, @fName, default)";
SqlCommand cmd = new SqlCommand(sql, con);
cmd.Parameters.Add("@fData", SqlDbType.Image, fileData.Length).Value = fileData;
cmd.Parameters.Add("@fName", SqlDbType.NVarChar).Value = fi.Name;
cmd.ExecuteNonQuery();
con.Close();
Run Code Online (Sandbox Code Playgroud)
另一种方法是他们插入一行,但是将文档(FileStream Column)留空.我必须输入一个虚拟值,因为当FileStream列为null时,我的Get File Path调用返回Null:
链接:FileStream
5: if (FileUpload1.FileContent.Length > 0)
6: {
7: SqlConnection objSqlCon = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
8: objSqlCon.Open();
9: SqlTransaction objSqlTran = objSqlCon.BeginTransaction();
10:
11: SqlCommand objSqlCmd = new SqlCommand("FileAdd",objSqlCon,objSqlTran);
12: objSqlCmd.CommandType = CommandType.StoredProcedure;
13:
14: SqlParameter objSqlParam1 = new SqlParameter("@SystemNumber", SqlDbType.Int);
15: …Run Code Online (Sandbox Code Playgroud) 我正在使用 Linq 解析 xml 文档,但我遇到了一个不确定如何处理处理的场景。我发现/尝试过的一切似乎都不起作用。正如您在下面看到的(非常简单的场景),其中 OrderAmount 为空。这是一个小数字段。当我尝试在 LINQ 中处理这个问题时,它一直在轰炸。我尝试过使用 deimcal?、使用 null 检查等似乎没有任何效果(很可能是用户错误)。任何建议,将不胜感激。
当元素是非字符串(如小数)并且为空时,如何处理?
XML:
<Orders>
<Order>
<OrderNumber>12345</OrderNumber>
<OrderAmount/>
</Order>
</Orders>
Run Code Online (Sandbox Code Playgroud)
链接:
List<Order> myOrders = from orders in xdoc.Descendants("Order")
select new Order{
OrderNumber = (int)orders.Element("OrderNumber"),
OrderAmount = (decimal?)orders.Element("OrderAmount"),
}.ToList<Order>();
Run Code Online (Sandbox Code Playgroud) 当我向我的SqlDataRecord添加一个值时,它是如何舍入值的.我不确定是什么导致它.
编辑:约翰提出了一个好点留下了dm的属性类型,即"十进制"?
TotalCount = 2.5245332200983
SqlDataRecord rec = new SqlDataRecord(
new SqlMetaData("TotalCount", SqlDbType.Decimal));
rec.SetNullableDecimal(0,dm.TotalCount);
When it is written to the DB it is showing 3.0000000000000
Run Code Online (Sandbox Code Playgroud)
数据库类型已添加,因此我可以通过TVP:
CREATE TYPE dbo.TestCount AS TABLE(
TotalCounts decimal(38,20) NULL
);
Run Code Online (Sandbox Code Playgroud)
数据库表:
CREATE TABLE dbo.TestCountTbl(
TotalCounts decimal(38,20) NULL);
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?SqlDbType错了吗?
编辑: Per @ user957902我必须为我的SqlDataRecord添加精度/比例....完全有道理......呃.所以我补充说,它就像一个魅力.谢谢大家!
SqlDataRecord rec = new SqlDataRecord(
new SqlMetaData("TotalCount", SqlDbType.Decimal,38,20));
Run Code Online (Sandbox Code Playgroud) 我试图确保我理解将新的碎片(副本集)添加到现有碎片集群时会发生什么。当我添加这些新成员时,发现有一个新的碎片成员可用,Mongo然后开始重新排列块,以便可以正确利用新成员?发生这种情况会对您产生什么样的影响?和往常一样,我假设您想一看到不良的性能数字就尝试添加这些成员(如果其他调整选项无济于事)。
只是想更好地了解在群集已经存在时添加分片时会发生什么。
谢谢,
小号
我知道如果我传递如下的URL:
http://localhost:3000/customer?companyid=300&customerid=200
Run Code Online (Sandbox Code Playgroud)
然后我可以在ExpressJS中使用以下内容来提取数据:
res.send(util.format('You are looking for company: %s customer: %s', req.query.companyid, req.query.customerid));
Run Code Online (Sandbox Code Playgroud)
但是,我想迭代参数并处理它们而不必在我的查询中预定义它们.我似乎无法在Express API中找到任何似乎有用的东西(可能正好看它).
http://localhost:3000/customer?companyid=300&customerid=200&type=employee
Run Code Online (Sandbox Code Playgroud)
任何意见/建议将不胜感激!
谢谢,
小号
sql-server ×6
c# ×3
sql ×2
t-sql ×2
express ×1
filestream ×1
go ×1
linq-to-xml ×1
mongodb ×1
node.js ×1