我正在尝试执行累积乘法.我正在尝试两种方法来做到这一点
DECLARE @TEST TABLE
(
PAR_COLUMN INT,
PERIOD INT,
VALUE NUMERIC(22, 6)
)
INSERT INTO @TEST VALUES
(1,601,10 ),
(1,602,20 ),
(1,603,30 ),
(1,604,40 ),
(1,605,50 ),
(1,606,60 ),
(2,601,100),
(2,602,200),
(2,603,300),
(2,604,400),
(2,605,500),
(2,606,600)
Run Code Online (Sandbox Code Playgroud)
注意:value列中 的数据永远不会是整数,值将包含小数部分.为了显示近似问题,我将示例值保持为整数.
在这个方法中我使用EXP + LOG + SUM() Over(Order by)技术来找到累积乘法.在这种方法中,数值不准确; 结果中存在一些舍入和近似问题.
SELECT *,
Exp(Sum(Log(Abs(NULLIF(VALUE, 0))))
OVER(
PARTITION BY PAR_COLUMN
ORDER BY PERIOD)) AS CUM_MUL
FROM @TEST;
Run Code Online (Sandbox Code Playgroud)
PAR_COLUMN PERIOD VALUE CUM_MUL
---------- ------ --------- …Run Code Online (Sandbox Code Playgroud) 我需要在映射表中创建每个单元的新行号.请检查以下样本数据和预期结果.
Lines table
+--------+------------+------+------+
| FileId | linenumber | code | unit |
+--------+------------+------+------+
| 1 | 1 | A | NULL |
| 1 | 2 | B | NULL |
| 1 | 3 | C | NULL |
+--------+------------+------+------+
map table
+------+------+
| code | unit |
+------+------+
| A | c1 |
| A | c2 |
| B | c3 |
| B | c4 |
| B | c5 |
+------+------+
expected result
+--------+------------+------+------+ …Run Code Online (Sandbox Code Playgroud) 我想将列名修改为表中的新名称
但这里的问题我想手动修改column name现在Triggers或SP's.
有没有更好的方法来做到这一点.
要rename一列正在使用此
sp_RENAME 'Tablename.old_Column', 'new_column' , 'COLUMN';
Run Code Online (Sandbox Code Playgroud)
同样,我怎么能做到triggers或SP's.?没有打开每个脚本?
CCP months QUART YEARS GTS
---- ------ ----- ----- ---
CCP1 1 1 2015 5
CCP1 2 1 2015 6
CCP1 3 1 2015 7
CCP1 4 2 2015 4
CCP1 5 2 2015 2
CCP1 6 2 2015 2
CCP1 7 3 2015 3
CCP1 8 3 2015 2
CCP1 9 3 2015 1
CCP1 10 4 2015 2
CCP1 11 4 2015 3
CCP1 12 4 2015 4
CCP1 1 1 2016 8
CCP1 2 1 2016 …Run Code Online (Sandbox Code Playgroud) 我有 Azuretimer function将数据从我的本地数据库复制到 Azure 托管数据库。目前我已经对函数中的表名进行了硬编码。
如果对其进行硬编码,是否可以将参数作为输入传递给函数?
public static void Run([TimerTrigger("0 */1 * * * *")]TimerInfo myTimer, TraceWriter log) {
string srcConnection = @"on premises connecting string";
string destConnection = @"Azure managed instance connection string";
string srcTable = "SourceTableName"; //am trying to make this as parameter
string destTable = "DestinationTableName"; //am trying to make this as parameter
string tmpTable = "select top 0 * into #DestTable from " + destTable;
using(SqlConnection
srcConn = new SqlConnection(srcConnection),
destConn = new SqlConnection(destConnection) …Run Code Online (Sandbox Code Playgroud) 我试图从local.settings.json文件中检索自定义设置.示例我正在尝试读取以下local.settings.json文件中的表列表
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"AzureWebJobsDashboard": "UseDevelopmentStorage=true",
"TableList": "TestTableName1,TestTableName2"
}
}
Run Code Online (Sandbox Code Playgroud)
使用以下代码阅读它
string tableslist = ConfigurationManager.AppSettings["TableList"];
Run Code Online (Sandbox Code Playgroud)
并且它有效,但我在一些地方读过,这只适用于本地调试,在生产环境中部署之后可能无效.有人能指出我如何以正确的方式做到这一点?或者问题仅适用于连接字符串相关的设置?
如何检查登录是否具有truncate特定表的权限?
我们有一个登录名Test,我们已经给予ALTER了特定表的许可.现在我想获取Test登录有Alter权限的表列表.
检查谷歌和论坛找不到任何答案.
我尝试从我的字符串中提取最后一个单词
例
输入字符串: GGG_FFFF_AAAA_BBBBBB_CCC_DDDDD
结果
??????????????????????????
? FIRST_COL ? SECOND_COL ?
??????????????????????????
? CCC ? DDDDD ?
??????????????????????????
Run Code Online (Sandbox Code Playgroud)
我有下面的代码工作.
DECLARE @STR VARCHAR(50) = 'GGG_FFFF_AAAA_BBBBBB_CCC_DDDDD'
SELECT
Reverse(LEFT(Stuff(Reverse(@STR), 1, Charindex('_', Reverse(@STR)) + 1 - 1, ''), Charindex('_', Stuff(Reverse(@STR), 1, Charindex('_', Reverse(@STR)) + 1 - 1, '')) - 1)) as FIRST_COL,
Reverse(LEFT(Reverse(@STR), Charindex('_', Reverse(@STR)) - 1)) as SECOND_COL
Run Code Online (Sandbox Code Playgroud)
有没有更简单的实现这一点
我有一个Table Valued Constructor通过它选择周围的1 million记录.它将用于update另一个表.
SELECT *
FROM (VALUES (100,200,300),
(100,200,300),
(100,200,300),
(100,200,300),
.....
..... --1 million records
(100,200,300)) tc (proj_d, period_sid, val)
Run Code Online (Sandbox Code Playgroud)
这是我的原始查询:https://www.dropbox.com/s/ezomt80hsh36gws/TVC.txt?dl = 0#
当我执行上述操作时,select它只是显示查询已完成但出现错误并显示任何错误消息.
更新:尝试使用TRY/CATCH块捕获错误消息或错误号但不使用与先前映像相同的错误
BEGIN try
SELECT *
FROM (VALUES (100,200,300),
(100,200,300),
(100,200,300),
(100,200,300),
.....
..... --1 million records
(100,200,300)) tc (proj_d, period_sid, val)
END try
BEGIN catch
SELECT Error_number(),
Error_message()
END catch
Run Code Online (Sandbox Code Playgroud)
为什么它没有执行是否有表Valed构造函数的限制Select.我知道Insert它是1000,但我选择在这里.
我已经创建了 .net 标准库。创建后,我尝试通过选择项目文件中的包选项从我的 Visual Studio 创建 nuget 包。然后尝试在另一个控制台应用程序中使用本地创建的 .nupkg 文件,效果很好。它按预期显示依赖项
然后我通过创建管道通过 Azure DevOps 部署了相同的库。现在在同一个控制台应用程序中,如果我从 Azure devops 源中选择 nuget,它不会显示任何依赖项。安装后控制台应用程序将无法工作,它要求在控制台应用程序中再次安装依赖项。
这是我的项目文件。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<Company>MyCompany</Company>
<Authors>Me</Authors>
<Version>1.0.0</Version>
<Description>Library for managing Azure KeyVault</Description>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.KeyVault" Version="3.0.5" />
<PackageReference Include="Microsoft.IdentityModel.Clients.ActiveDirectory" Version="5.2.7" />
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
我尝试按照此处的建议在项目文件中添加以下内容,但没有帮助。
<PackageReference Include="NuGet.Build.Tasks.Pack" Version="5.4.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
Run Code Online (Sandbox Code Playgroud)
注意:.nuspec我的项目中没有文件
我在这里错过了什么。
sql ×7
sql-server ×7
azure ×3
c# ×3
t-sql ×3
alter ×1
azure-devops ×1
bulkupdate ×1
nuget ×1
rename ×1
row-number ×1
triggers ×1