我想检查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,而是想简化一些事情
我有以下查询时考虑<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) 我正在尝试执行 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 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)
我还使用 Get-ChildItem 来双重确认这些文件是否存在。
好像| / 多行不能按描述工作。
我已经构建了一个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) 我的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
我用.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) 我有一个 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 自动化处理数据库。这里有一些背景:
我想在单个 BigQuery 查询中创建 3-4 个单独的临时表(所有表都基于不同的数据源),然后在查询中以各种方式加入它们。
我试图通过使用多个 WITH 语句来做到这一点,但如果您不嵌套它们,则似乎只能在查询中使用一个 WITH 语句。每次我尝试时,都会收到一条错误消息,指出需要“SELECT”语句。
我错过了什么吗?如果可能的话,我更愿意在一个查询中完成这一切。
我的问题与这个问题类似:
Json 文件到 powershell 并返回到 json 文件
在 powershell 中导入和导出 ARM 模板时,使用Convert-FromJson和Convert-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) sql-server ×3
asp.net ×2
c# ×2
sql ×2
azure-devops ×1
deployment ×1
localdb ×1
owin ×1
parameters ×1
performance ×1
powershell ×1
regex ×1
temp-tables ×1