我有一台位于其他地方的服务器.在该服务器上,我计划运行一个程序来利用该物理机上支持CUDA的图形卡.这个程序与图形无关 - 它只会使用图形卡进行计算数学运算.
我能在那台机器上运行这个程序吗?如果我使用Windows远程桌面登录,程序是否会识别物理图形卡?或者,由于我正在进行远程处理,服务器是否甚至不会识别插入的图形卡?
编辑:我想提一下,所有的计算都是远程进行的,并且这台机器上没有任何东西取决于我家用电脑本地的情况.我只是使用我的家用电脑"查看"该服务器上发生了什么.
我的原始数据在表2中.我从头开始创建Table1.我填充了A列,如下所示:
INSERT INTO Table1("item")
SELECT DISTINCT(Table2."item")
FROM Table2
Run Code Online (Sandbox Code Playgroud)
我填充了Table1.Totals(B列),如下所示:
UPDATE Table1
SET totals = t2.q
FROM Table1 INNER JOIN
(
SELECT t2."item"
, SUM(t2.quantity) AS q
FROM t2
GROUP BY t2."item"
) AS t2
ON Table1."item" = t2."item"
Run Code Online (Sandbox Code Playgroud)
如何填充Table1."date"?我上面的UPDATE在这里不起作用,因为我不能在日期上使用聚合函数.我能够在单独的查询中使用以下代码获得我想要的结果:
SELECT DISTINCT Table1."item"
, Table2."date"
FROM Table1 INNER JOIN Table2
ON Table1."item" = Table2."item"
ORDER BY Table1."item"
Run Code Online (Sandbox Code Playgroud)
但是,如何使用此查询的结果来设置列的值?我正在使用SQL Server 2008.
我熟悉4部分命名,但每次尝试引用列时都会出错.例如:
UPDATE my_table
SET my_table.column1 = otherserver.otherdatabase.dbo.othertable.column1
FROM my_table INNER JOIN otherserver.otherdatabase.dbo.othertable
ON my_table.column2 = otherserver.otherdatabase.dbo.othertable.column2
Run Code Online (Sandbox Code Playgroud)
这会引发以下错误:
无法绑定多部分标识符"otherserver.otherdatabase.dbo.othertable.column1".
如果我只引用一个表,我从来没有遇到麻烦,但是当我追加列名时,它总是会抛出错误.有任何想法吗?SQL Server 2008
我有一堆像这样的字符串:
'ABCD99991000'
'XYZ79991000'
'E2493991039'
Run Code Online (Sandbox Code Playgroud)
我真正关心的是最后8个字符之前的所有内容.问题是我在字符串开头处理的字符长度可变.在上面的例子中,我想要返回的是:
'ABCD'
'XYZ'
'E24'
Run Code Online (Sandbox Code Playgroud)
如果我能让它在结果之前返回所有内容,那么RIGHT()函数将是完美的.例如,RIGHT(E2499991039,8)返回我不想要的数字!如何在查询中的最后8个字符之前返回可变长度强度?
SQL Server 2008
在从C#到SQL服务器没有任何不精确的情况下,让程序插入实际数字会遇到很多麻烦.
例如,以下是在推送到SQL Server之前如何在C#中处理数据的代码:
DataTable dt = new DataTable();
dt.Columns.Add("Number", typeof(double));
dt.Rows.Add(6.5);
dt.Rows.Add(7);
dt.Rows.Add(8);
SqlConnection con;
string sqlCmd;
SqlCommand cmd;
using (con = new SqlConnection(Common.DBLink))
{
con.Open();
SqlBulkCopy bulkCopy = new SqlBulkCopy(con);
bulkCopy.DestinationTableName = "NumberTable";
bulkCopy.WriteToServer(dt);
con.Close();
}
Run Code Online (Sandbox Code Playgroud)
但如果我有一个像2.85这样的数字,它会被插入为2.8499.SQL列是一种DECIMAL(10,4)
数据类型.这只发生在很少的数字上.对于像12.5或20这样的值,它永远不会发生.