小编Nic*_*aid的帖子

对多列使用IS NOT NULL

我想检查WHERE子句中单个SQL语句中多列的is not null约束,有没有办法这样做?另外,我不想要NOT NULL在列定义上强制执行类型约束.

SELECT * FROM AB_DS_TRANSACTIONS 
WHERE FK_VIOLATION IS NULL 
AND TRANSACTION_ID NOT IN(
    SELECT distinct TRANSACTION_ID FROM AB_TRANSACTIONS) 
AND COUNTRY_ID IS NOT NULL 
AND GEO_CUST_COUNTRY_ID IS NOT NULL 
AND INVOICE_DATE IS NOT NULL 
AND ABB_GLOBALID IS NOT NULL 
AND SALES_ORG_ID IS NOT NULL 
AND DIST_ID IS NOT NULL 
AND CUSTOMER_ID IS NOT NULL 
AND REPORT_UNIT_ID IS NOT NULL 
AND CURR_INVOICE IS NOT NULL 
AND DIVISION_CODE IS NOT NULL 
Run Code Online (Sandbox Code Playgroud)

因此,我不是一次又一次地使用IS NOT NULL,而是想简化一些事情

sql-server

9
推荐指数
3
解决办法
4万
查看次数

ORDER BY索引列仍然很慢

我有以下查询时考虑<1秒ORDER BY b.Price时,和10s以上时ORDER BY b.Price DESC使用

select * from
(
    select  
        /* When changed to ORDER BY b.Price DESC it's 10x slower! */
        (row_number() over (ORDER BY b.Price)) as RowNumber,
        b.*     
    from
        Books b (nolock) 
        inner join BookPublishRegions p (nolock)
          on b.BookKey = bp.BookKey
    where       
        contains(p.PublishRegionName, 'France')
) as t1
where t1.RowNumber between 100 and 110
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

我有一个升序和降序索引b.Price.我不确定我还能在这做什么......

作为参考,我在下面的两个索引中都包含了CREATE脚本:

CREATE NONCLUSTERED INDEX [IX_Books_PriceDesc] ON [dbo].[Books] 
(
    [Price] DESC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = …
Run Code Online (Sandbox Code Playgroud)

sql sql-server asp.net performance sql-server-2008

7
推荐指数
1
解决办法
588
查看次数

Azure管道输出变量task.setvariable没有为变量分配任何值

我正在尝试执行 terraform 脚本来创建 ec2 并使用输出变量概念我想获取 ec2 公共 ip 并将其分配给一个变量并将其传递给另一个任务。但我发现使用 bash 或脚本的输出变量在 azure pipeline yml 中不起作用。我正在使用ubuntu代理。

- script: COMMAND=$(cat terraform.tfstate | grep 'public_ip"' | cut -d":" -f2 | cut -d'"' -f2) && echo "##vso[task.setvariable variable=ec2ip;]$COMMAND" && echo $ec2ip
Run Code Online (Sandbox Code Playgroud)

但我认为打印没有任何价值。不确定 task.setvariable 是否有效。需要一些帮助来解决这个问题。

azure-pipelines

7
推荐指数
1
解决办法
5173
查看次数

CopyFiles 任务未拾取文件

在数据库项目构建和发布管道中使用 Azure DevOps YAML

这段代码正确地获取了我的四个 dacpac 文件,我可以看到这些文件被复制到控制台中

    - task: CopyFiles@2
      displayName: Copy build output to artifacts staging
      inputs:
        SourceFolder: "$(Build.SourcesDirectory)"
        flattenFolders: true
        Contents: '**\bin\**\*.dacpac'
        TargetFolder: "$(Build.ArtifactStagingDirectory)"
Run Code Online (Sandbox Code Playgroud)

这段代码正确地获取了我的发布文件,我可以看到这些文件正在控制台中复制

    - task: CopyFiles@2
      displayName: Copy build output to artifacts staging
      inputs:
        SourceFolder: "$(Build.SourcesDirectory)"
        flattenFolders: true
        Contents: '**\PublishProfile\*.publish.xml'
        TargetFolder: "$(Build.ArtifactStagingDirectory)"
Run Code Online (Sandbox Code Playgroud)

这段代码报告“找到零个文件”

    - task: CopyFiles@2
      displayName: Copy build output to artifacts staging
      inputs:
        SourceFolder: "$(Build.SourcesDirectory)"
        flattenFolders: true
        Contents: |
          '**\bin\**\*.dacpac'
          '**\PublishProfile\*.publish.xml'
        TargetFolder: "$(Build.ArtifactStagingDirectory)"
Run Code Online (Sandbox Code Playgroud)

此管道多行语法遍布示例 https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/copy-files?view=azure-devops&tabs=yaml#examples

我还使用 Get-ChildItem 来双重确认这些文件是否存在。

好像| / 多行不能按描述工作。

azure-devops azure-pipelines-tasks azure-pipelines-yaml

7
推荐指数
1
解决办法
6354
查看次数

捕获登录事件,以便我可以缓存其他用户信息

我已经构建了一个Web应用程序.当我建立它时,我勾选了"组织账户"

它运行良好 - 我使用我的Office 365帐户登录并User.Identity.Name包含电子邮件地址

此应用程序是旧的ASP Classic应用程序的替代前端.该应用程序有一个我需要使用的现有安全表.

我想使用电子邮件地址查找此表中的记录以获取

  • 用户的内部数据库密钥(因此我可以在数据库调用中使用它)

  • 用户的安全级别(授权)

我想在验证后立即查看,并将这两个值保存Session到以后再参考

我有一个现有的方法来完成所有这些查找和缓存.我实际上通过从_LoginPartial.cshtml视图中调用它来实现它,但显然从视图中触发这种事情是不正确的

这是查找和缓存用户信息的代码.现在这是在,AccountController.cs但它不一定是

private Boolean GetAdditionalUserInfo()
{
    // if authentication info is saved, don't go find it
    if (Session["UID"] != null) return true;

    // get the db employee id from the database and save it to the session
    var r = (
            from e in db.Employees
            where e.Email == User.Identity.Name
            select new
            {
                e.Emp_ID,
                e.Group_ID
            }
            ).SingleOrDefault();

    if ((r == null) || …
Run Code Online (Sandbox Code Playgroud)

c# asp.net authentication owin asp.net-mvc-5.2

6
推荐指数
1
解决办法
751
查看次数

在VSTS ARM版本中,"其中一个部署参数具有空键"是什么意思

我的ARM模板资源组部署在VSTS中失败.

我得到一个错误,没有任何具体问题的参数参考:"其中一个部署参数有一个空键.详情请参阅https://aka.ms/arm-deploy/#parameter-file."

引用的url包含一般信息,一条注释询问相同的问题,但没有答案.有人要求它避免它可能与部署步骤(2.*)的版本有关,而且它不再使用Powershell.我通过模板来回比较BeyondCompare中的参数,没有任何内容......

有谁知道这个错误意味着什么?

deployment parameters azure-resource-manager azure-pipelines-build-task azure-resource-group

6
推荐指数
3
解决办法
1433
查看次数

SQL Server 2016 LocalDb连接问题

我用.mdf数据库文件(版本13.00.4001)创建了一个应用程序。

如果我在编译应用程序的同一台计算机上运行该应用程序,那么一切都会很好。但是,如果我尝试在安装了SQL Server LocalDb 2016的第二台计算机上运行它,则它不起作用,并说无法在计算机上找到SQL Server。

有什么问题?我不明白为什么。

如果我尝试在装有SQL Server 2014 LocalDB和2016的PC上运行应用程序,则日志显示

无法打开,因为它是852版。此服务器支持782版和更早版本。不支持降级路径

真的我不明白为什么会有所有这些问题。

用于建立连接字符串的代码:

"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=" + 
Directory.GetCurrentDirectory() + 
@"\Dati.mdf; Integrated Security=True"
Run Code Online (Sandbox Code Playgroud)

c# sql-server localdb

5
推荐指数
1
解决办法
1805
查看次数

Azure Analysis Services 是否支持服务主体登录 SQL Azure

我有一个 Azure Analysis Services 模型,使用以下连接字符串从 SQL Azure 读取数据:

Data Source=MySQLAzureDB.database.windows.net;
Initial Catalog=MyDB;Persist Security Info=true;
User ID=MyUser;Password=MyPWD;
Encrypt=True;Authentication=Sql Password
Run Code Online (Sandbox Code Playgroud)

这使用SQL 用户连接到 SQL Azure。这意味着我需要在两个不同的位置定义用户/密码:在 SQL Azure 中以及在此连接字符串中。

我想使用服务主体而不是 SQL 用户。以前有人这样做过吗?

我尝试过使用不同的连接类型,但这是我Authentication=ActiveDirectoryPassword在连接字符串中使用时 AAS 的典型错误:

JSON DDL 请求失败并出现以下错误:无法执行 XMLA。返回错误:“无法加载 adalsql.dll >>(身份验证=ActiveDirectoryPassword)

因此,我进行进一步调查之前,是否有人这样做过?该错误消息似乎表明尚未安装此关键库。

我之前有一些使用服务主体的经验。我必须连接到 AAS 并使用服务主体通过 Azure 自动化处理数据库。这里有一些背景:

使用自动化 RunAs 服务主体连接到 Azure Analysis Services 和进程

azure-automation azure-sql-database azure-analysis-services

5
推荐指数
1
解决办法
871
查看次数

尝试在单个查询中创建多个临时表

我想在单个 BigQuery 查询中创建 3-4 个单独的临时表(所有表都基于不同的数据源),然后在查询中以各种方式加入它们。

我试图通过使用多个 WITH 语句来做到这一点,但如果您不嵌套它们,则似乎只能在查询中使用一个 WITH 语句。每次我尝试时,都会收到一条错误消息,指出需要“SELECT”语句。

我错过了什么吗?如果可能的话,我更愿意在一个查询中完成这一切。

sql temp-tables google-bigquery

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

Powershell JSON 转换删除 unicode 转义字符而不删除文字 \n

我的问题与这个问题类似:

Json 文件到 powershell 并返回到 json 文件

在 powershell 中导入和导出 ARM 模板时,使用Convert-FromJsonConvert-ToJson引入 unicode 转义序列。

我用这里的代码再次逃脱。

一些示例代码(为了清晰起见,多行):

$armADF = Get-Content -Path $armFile -Raw | ConvertFrom-Json
$armADFString = $armADF | ConvertTo-Json -Depth 50
$armADFString | 
    ForEach-Object { [System.Text.RegularExpressions.Regex]::Unescape($_) } | 
    Out-File $outputFile
Run Code Online (Sandbox Code Playgroud)

这是我一直在阅读的 docoUnescape

输出文件的结果是相同的,只是所有文字实例\n(原始 JSON 文件中的)都转换为实际的回车符。这打破了 ARM 模板。

如果我不包含 Unescape 代码,它们\n会被保留,但 unicode 字符也会被保留,这也会破坏 ARM 模板。

看来我需要预先转义,\n所以当我调用 Unescape 时,它​​们会变成漂亮的小\n。我尝试过一些事情,例如在调用 unescape 之前添加此内容。

$armADFString = $armADFString -replace("\\n","\u000A") …
Run Code Online (Sandbox Code Playgroud)

regex powershell azure-data-factory azure-rm-template

4
推荐指数
1
解决办法
1832
查看次数