小编Dmi*_*sev的帖子

SQL Server错误或功能?十进制数转换

在开发过程中遇到了相当奇怪的SQL Server行为.在这里,绝对相同的数字我们有完全相同的公式.唯一的区别是我们如何得到这个数字(4.250).从表,临时表,变量表或硬编码值.在所有情况下,圆角和铸造都是完全相同的.

-- normal table
CREATE TABLE [dbo].[value]
(
[val] [decimal] (5, 3) NOT NULL
) 
INSERT INTO [value] VALUES (4.250 )
SELECT ROUND(CAST(val * 0.01 / 12 AS DECIMAL(15, 9)), 9) AS val FROM [value] AS pr

-- inline query from normal table
SELECT * FROM (SELECT ROUND(CAST(val * 0.01 / 12 AS DECIMAL(15, 9)), 9) AS val FROM [value] AS pr) a

-- record without table
SELECT ROUND(CAST(4.250 * 0.01 / 12 AS DECIMAL(15, 9)), 9) AS val …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008-r2 sql-server-2014 sql-server-2016

20
推荐指数
3
解决办法
1975
查看次数

使用OUTER APPLY函数时返回的值而不是NULL

使用内联函数时,我得到奇怪的结果.这是代码:

IF EXISTS (
SELECT * FROM sys.objects AS o WHERE name = 'vendor_relation_users'
) DROP FUNCTION dbo.vendor_relation_users;
GO
CREATE FUNCTION [dbo].[vendor_relation_users]
(
    @user_name CHAR(12)
)
RETURNS TABLE
AS
    RETURN (SELECT @user_name AS user_name WHERE @user_name NOT LIKE '06%');
GO

DECLARE @u CHAR(12) = '066BDLER'
SELECT a.user_name, is_v.user_name 
FROM (SELECT @u AS user_name) a
OUTER APPLY [dbo].[vendor_relation_users](@u) AS is_v

SELECT a.user_name, is_v.user_name 
FROM (SELECT @u AS user_name) a
OUTER APPLY (SELECT @u AS user_name WHERE @u NOT LIKE '06%') AS …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server apply sql-server-2014 outer-apply

16
推荐指数
2
解决办法
350
查看次数

自动获取拉取请求主题/主题

我想基于Pull Request描述创建自动发布说明,如下面的屏幕上的"添加法律解决索赔报告功能".

我对Pull Requests不太满意,甚至不确定"描述"是Bitbucket唯一的功能.但问题是如何从Pull Request中自动获取此描述?我在提交消息中找不到任何地方.

在此输入图像描述

git bitbucket bitbucket-api pull-request bitbucket-server

12
推荐指数
1
解决办法
188
查看次数

如何使用Python向Viber机器人发送消息?

我有以下HTTPS服务器:

from flask import Flask, request, Response
from viberbot import Api
from viberbot.api.bot_configuration import BotConfiguration
from viberbot.api.messages import VideoMessage
from viberbot.api.messages.text_message import TextMessage
import logging

from viberbot.api.viber_requests import ViberConversationStartedRequest
from viberbot.api.viber_requests import ViberFailedRequest
from viberbot.api.viber_requests import ViberMessageRequest
from viberbot.api.viber_requests import ViberSubscribedRequest
from viberbot.api.viber_requests import ViberUnsubscribedRequest

logger = logging.getLogger(__name__)
app = Flask(__name__)
viber = Api(BotConfiguration(
    name='PythonSampleBot',
    avatar='http://www.clker.com/cliparts/3/m/v/Y/E/V/small-red-apple-hi.png',
    auth_token='xxx-xxx-xxx'
))


@app.route('/', methods=['POST'])
def incoming():
    logger.debug("received request. post data: {0}".format(request.get_data()))
    # every viber message is signed, you can verify the signature using this …
Run Code Online (Sandbox Code Playgroud)

python bots webhooks python-3.x viber

10
推荐指数
2
解决办法
1616
查看次数

删除或不删除存储过程中的临时表

我多次看到这个问题,但我找不到让我满意的答案。基本上人们和书籍所说的是“虽然临时表在超出范围时会被删除,但您应该在不再需要它们时显式删除它们以减少服务器上的资源需求”。

我很清楚,当您在管理工作室工作并创建表时,在关闭窗口或断开连接之前,您将使用该表的一些资源,从逻辑上讲,最好删除它们。

但是当你使用过程时,如果你想清理表,你很可能会在它真正结束时这样做(我不是在谈论当你真的不需要它时你立即删除表的情况程序)。所以工作流程是这样的:

当您投入 SP 时:

  • SP执行开始
  • 做一些事情
  • 删除表
  • 执行结束

据我所知,当你不放弃时它怎么可能工作:

  • SP执行开始
  • 做一些事情
  • 执行结束
  • 删除表

这里有什么区别?我只能想象需要一些资源来识别临时表。还有其他想法吗?

更新:

我用 2 个 SP 进行了简单的测试:

create procedure test  as
begin
create table #temp (a int)
insert into #temp values (1);
drop table #temp;
end
Run Code Online (Sandbox Code Playgroud)

另一个没有 drop 语句。我启用了用户统计并运行了测试:

declare @i int = 0;
 while @i < 10000
 begin
 exec test;
 SET @i= @i + 1;
 end
Run Code Online (Sandbox Code Playgroud)

这就是我所拥有的(在SP中试用1-3掉落表,4-6不掉落) 在此处输入图片说明

如图所示,当我不删除临时表时,所有统计数据都相同或有所减少。

更新2:

我第二次运行了这个测试,但现在有 10 万次调用,并且还添加了 SET NOCOUNT ON。这些是结果: 在此处输入图片说明

由于第二次运行确认,如果您不删除 SP 中的表,那么您实际上节省了一些用户时间,因为这是由其他一些内部进程完成的,但在用户时间之外。

sql-server stored-procedures temp-tables

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

由于公共令牌不匹配,从源运行tSQLt项目失败

我正在尝试对tSQLt框架进行一些改进,并且大部分时间都已完成,但由于与我未接触过的证书相关的测试仍然很少失败,所以无法做到这一点:

 [exec] |18|[InstallExternalAccessKeyTests].[test creates correct certificate in master]                                                       |    120|Failure|
 [exec] |19|[InstallExternalAccessKeyTests].[test tSQLt can be set to EXTERNAL ACCESS after InstallExternalAccessKey executed]                 |    333|Failure|
 [exec] |20|[InstallExternalAccessKeyTests].[test tSQLtExternalAccessKey install data is signed with same key as tSQLt.clr]                    |     10|Failure|
Run Code Online (Sandbox Code Playgroud)

失败的错误是:

Expected: %publickeytoken=8c9a92de0f9c7794,%
Actual: tsqltclr, version=1.0.7216.13228, culture=neutral, publickeytoken=8d3f4bf59e4c22fd, processorarchitecture=msil
Run Code Online (Sandbox Code Playgroud)

我将尝试描述我的安装过程。

我使用以下指南安装了此框架源。但是之后我无法启动该项目,因为它失败并出现以下错误,并且整个问题的解决都在该SO帖子中完成

[exec]
C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets(2482,5):错误MSB3325:无法导入以下密钥文件:tSQLtOfficialSigningKey.pfx。密钥文件可能受密码保护。若要更正此问题,请尝试再次导入证书或使用以下密钥容器名称将证书手动安装到强名称CSP:VS_KEY_C20B79DE0583A5C1 [E:\ Source \ tSQLt \ tSQLtCLR \ tSQLtCLR \ tSQLtCLR.csproj] [exec]
C:\ Windows \ …

sql-server snk pfx tsqlt

8
推荐指数
1
解决办法
147
查看次数

如何将DATE(不是DATETIME/TIMESTAMP)列的默认值设置为当前日期?

注意:问题是关于DATE类型,而不是日期时间或时间戳

如何更改日期数据类型列以默认使用当前日期?我看了很多关于datetime的例子,但没有看到日期.我试过了:

ALTER TABLE `accounting` ALTER `accounting_date` SET DEFAULT CURRENT_DATE;
ALTER TABLE `accounting` CHANGE `accounting_date` `accounting_date` DATE NOT NULL DEFAULT CURRENT_DATE;
Run Code Online (Sandbox Code Playgroud)

我也试过CURDATE(),NOW(),CURRENT_DATE()......

mysql

7
推荐指数
3
解决办法
2万
查看次数

从Viber bot发送消息给订阅的用户

我正在尝试将消息从Viber bot发送给订阅的用户。我可以获得订阅的用户ID,但是当我发送消息时,出现500错误。

from flask import Flask, request, Response
from viberbot import Api
from viberbot.api.bot_configuration import BotConfiguration
from viberbot.api.messages.text_message import TextMessage

app = Flask(__name__)

viber = Api(BotConfiguration(
    name='PythonSampleBot',
    avatar='http://www.clker.com/cliparts/3/m/v/Y/E/V/small-red-apple-hi.png',
    auth_token='xxx-xxx-xxx'
))


@app.route('/', methods=['POST'])
def incoming():
    user_id = viber.get_account_info()['members'][0]['id']
    print(user_id)
    viber.send_messages(user_id, [
        TextMessage(text="thanks for subscribing!!!!!")
    ])
    return Response(status=200)


if __name__ == "__main__":
    context = ('E:\\Docs\\learn_py\\viberbot\\cert.pem',
               'E:\\Docs\\learn_py\\viberbot\\key.pem')
    app.run(host='0.0.0.0', port=4443, debug=True, ssl_context=context)
Run Code Online (Sandbox Code Playgroud)

请求消息发送代码

import json
import requests

webhook_url = 'https://xxx.xxx.xxx.xxx:4443'

requests.post(
    webhook_url, data=json.dumps({"text": "Hello World"}),
    headers={'Content-Type': 'application/json'},
    verify='E:\\Docs\\learn_py\\viberbot\\cert.pem'
)
Run Code Online (Sandbox Code Playgroud)

错误讯息

Cfklv9HOJ6bXZcHMaTl9Gw== …
Run Code Online (Sandbox Code Playgroud)

python bots flask python-3.x viber

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

在 VS Code 中自动将 Jira 问题编号添加到 git 提交消息

我们将Jira Issue #添加到提交消息中,以将更改与Jira Issue链接起来。由于问题编号是手动添加的,很容易出现人为错误。由于我们总是在git 分支中保存这个数字,所以提交消息可以有这个分支名称的默认值吗?可以通过VS 代码扩展或git 模板来完成吗?

在此输入图像描述

git jira visual-studio-code

6
推荐指数
2
解决办法
7674
查看次数

无法从我的VS Code扩展(node.js)连接到SQL Server

我正在开发VS Code扩展,并希望从SQL Server数据库中获取一些数据。我尝试了许多不同的示例,但没有一个对我有用。

        const Connection = require('tedious').Connection;

        const config = {
            user: 'ssrs', // tried userName, username
            password: 'ssrs', 
            server: 'localhost',
            options: {
                database: 'imdb' 
            }
          }

          const connection = new Connection(config);
          connection.on('connect', function(err: string) {
            if (err) {
              console.log(err);
            } else {
              console.log('Connected');
            }
          });
Run Code Online (Sandbox Code Playgroud)

要么

        await sql.connect('mssql://ssrs:ssrs@localhost/imdb')
        const result = await sql.query`select 1 as one`
        console.dir(result)
Run Code Online (Sandbox Code Playgroud)

要么

    const sql = require("mssql");
    const conn = new sql.ConnectionPool({
        database: "imdb",
        server: "localhost",
        driver: "msnodesqlv8",
        userName: "ssrs",
        password: "ssrs"
    });

    conn.connect().then(() …
Run Code Online (Sandbox Code Playgroud)

sql-server node.js typescript visual-studio-code vscode-extensions

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