小编Pau*_*ite的帖子

将数据库(在 SQL Server 2012 中创建)附加到 SQL Server 2014 实例而不升级它

我在生产服务器(SQL Server 2012)中有一个数据库,我有一个开发服务器(SQL Server 2014)。

我需要在开发服务器中附加数据库,但我意识到一旦附加它就会自动升级到 2014 版,因此我无法在生产服务器中再次附加它。

是否可以在不升级的情况下将数据库附加到开发服务器中?

我们计划在开发、分离和将其附加到生产中进行更改。

sql-server attach

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

Nvarchar 列被截断为 256 个字符

I have a SQL Server Express 2012 database. There is a table which previously had a column of type nvarchar(255). Now my requirements have changed and I am required to store long strings in the same column, so I modified the columns to have size 512.

alter Table [dbo].[mytable] ALTER COLUMN [mycol] nvarchar(512) NULL;
Run Code Online (Sandbox Code Playgroud)

Now when I try updating data in the column whose size was increased, the update goes through fine. But when I query the data, the …

sql-server alter-table

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

扩展事件不会捕获每个 rpc_completed

我有一个长时间运行的扩展事件会话,它捕获rpc_completed为几个过程过滤的事件。它发现了一些已经运行的。但其他人当我知道他们已被处决时,它并没有捕捉到他们。我知道这一点的原因是因为我查看了缓存并发现它们在那里被调用。

我正在使用 SQL Server 2016。我将过滤object_name作为字段名称、equal_i_sql_unicode_string运算符和值减去架构名称。我还修改了会话以添加我知道经常使用的 proc,它可以很好地捕获那些。

为什么它会忽略而不捕获一些?

sql-server stored-procedures extended-events

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

如何将动态命令与程序复制一起使用?

我正在尝试使用来自程序命令的 Postgres 副本读取 JSON API。

当我打电话

copy _temp from program 'curl -uri "https://url"';
Run Code Online (Sandbox Code Playgroud)

它工作正常,但 API 有分页,我需要循环多次调用。

当我这样称呼它时:

_command := 'curl -uri "https://url?&page='||(10::text)||"';
copy _temp from program _command;`
Run Code Online (Sandbox Code Playgroud)

我得到

ERROR:  syntax error at or near "_command"
Run Code Online (Sandbox Code Playgroud)

你甚至不能像

copy _temp from program 'curl -uri "https://url?&page='||(10::text)||'"';
Run Code Online (Sandbox Code Playgroud)

提高通知样式中的百分比参数替换也不起作用。

是什么赋予了?程序是带单引号的文字字符串,那么指定文字字符串和使用 text 或 varchar 变量有什么区别?似乎没有任何程序数据类型(::program cast 什么也不做),我错过了什么?

在文档中它说'最好使用固定的命令字符串'而不是你只能使用固定的命令字符串......

如何使用动态命令字符串?

postgresql copy

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

SQL Server 标准基本可用性组 - 只有 10 个侦听器限制?

可以使用 SQL Server Standard 创建的侦听器数量是否有限制?

我正在与使用 CU3 设置 2017 标准服务器的 DBA 合作。我们有 12 个数据库,他能够设置 12 个基本可用性组。他能够设置 10 个侦听器,但在 11 日,出现以下错误:

为可用性组侦听器“test12300”创建失败。(Microsoft.SqlServer.Smo)

如需帮助,请单击:http : //go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=14.0.17213.0+((SSMS_Rel).171128-2020)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates。 FailedOperationExceptionText&EvtID=Create+AvailabilityGroupListener&LinkId=20476


附加信息:

执行 Transact-SQL 语句或批处理时发生异常。(Microsoft.SqlServer.ConnectionInfo)


WSFC 群集无法使 DNS 名称为“test12300”的网络名称资源联机。DNS 名称可能已被使用或与现有名称服务冲突,或者 WSFC 群集服务可能未运行或可能无法访问。使用不同的 DNS 名称来解决名称冲突,或查看 WSFC 群集日志以获取更多信息。尝试为侦听器创建网络名称和 IP 地址失败。如果这是一个 WSFC 可用性组,WSFC 服务可能未运行或在其当前状态下可能无法访问,或者为网络名称和 IP 地址提供的值可能不正确。检查 WSFC 群集的状态并与网络管理员一起验证网络名称和 IP 地址。否则,请联系您的主要支持提供商。(Microsoft SQL Server,错误:19471)

如需帮助,请单击:http : //go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=14.00.3015&EvtSrc=MSSQLServer&EvtID=19471&LinkId=20476

我们创建了 11 个空数据库,对每个数据库进行了备份,然后通过 AG 向导使用 DHCP 创建了一个 AG 和一个侦听器。它工作了 10 次,但在第 11 次失败了。对于第 11 个侦听器,我们选择了名称 BAG_L11,没有其他东西使用该 DNS 名称。

sql-server listener availability-groups standard-edition sql-server-2017

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

带有子查询 LIMIT 1 的 UPDATE 返回多行

我正在努力处理随机返回多行而不是一行的查询。我正在使用 PostgreSQL 9.4.12

查询如下:

UPDATE folder as f set locked = 'locked', date_locked = current_timestamp 
from (
    SELECT * from folder as f2 
    WHERE f2.locked = 'available'
    LIMIT 1 FOR UPDATE ) as folderToUpdate 
WHERE f.id = folderToUpdate.id returning f.*
Run Code Online (Sandbox Code Playgroud)

id是主键。

它是通过一系列集成测试执行的。当我只执行上述查询的测试时,我没有任何问题。但是,当我执行所有测试时,我随机得到多行。你有什么建议吗?

postgresql concurrency update postgresql-9.4

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

SQL Management Studio Intellisense - 隐藏全局变量

我不确定这是否可行,但是在编写查询以从表中进行选择时,当我使用 CTRL + 空格键调出智能感知下拉菜单时,它会为我提供所有变量的列表(全局变量和表中的变量)。

在此处输入图片说明

有什么办法可以让它只显示我从中选择的表中的变量?除非您已经知道该字段的名称,否则它基本上完全没用,那么智能感知下拉的重点是什么?

sql-server ssms intellisense

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

如何回滚 SQL Server 事务并使用输出参数?

我试图在存储过程中设置一个输出参数,但我认为当我回滚事务时,我认为我也将分配回滚到@out. 那是对的吗?

如果是这样,我如何返回消息并回滚事务?我正在@out从 C#获取参数。

create PROCEDURE [dbo].[sp]
@out varchar(2000) output
AS
BEGIN
    SET NOCOUNT ON
    BEGIN TRANSACTION
    BEGIN TRY
        SET @OUT = "success";
        COMMIT TRANSACTION
    END TRY

    BEGIN CATCH
        set @out = 'not success';
        ROLLBACK TRANSACTION
    END CATCH
END
Run Code Online (Sandbox Code Playgroud)

我原本是在做一个

SELECT 
    ERROR_NUMBER() AS ErrorNumber,
    ERROR_SEVERITY() AS ErrorSeverity,
    ERROR_STATE() AS ErrorState,
    ERROR_PROCEDURE() AS ErrorProcedure,
    ERROR_LINE() AS ErrorLine,
    ERROR_MESSAGE() AS ErrorMessage;
Run Code Online (Sandbox Code Playgroud)

...但这没有帮助,尽管我更喜欢这种方法。

sql-server stored-procedures error-handling ssdt sql-server-2016

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

如何设置lowercase_table_name

我一直在尝试lower_case_table_names在 MySQL 8.0 中进行设置,但没有成功。在 8.0 中设置它的过程是什么?

在以前版本的 mysql 中,我能够/etc/mysql/mysql.cnf通过添加以下行来覆盖变量:

[mysql] 
lower_case_table_names = 1
Run Code Online (Sandbox Code Playgroud)

但是当我尝试重新启动服务器/服务时,mysql 不会重新启动。
过去,所有 mysql 服务器的此设置都可以正常工作,我只是不知道如何在 8.0 中执行相同的操作。

mysql configuration mysql-8.0

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

错误的 EST 时区而不是 Oracle 中的 EDT

我在 Oracle 数据库中没有得到正确的时区。该问题仅从 2021 年开始发生。请查看两个相同的查询 - 第一个是 2020 年,第二个是 2021 年。第一个正确地将时区指定为 EDT;第二个错误地给出了 EST。如何解决这个问题?

SELECT 
   TO_CHAR(FROM_TZ(TIMESTAMP '2020-08-01 00:00:00', 'America/New_York'),'TZD') AS TIMEZONE 
FROM DUAL ;

---
EDT

SELECT 
   TO_CHAR(FROM_TZ(TIMESTAMP '2021-08-01 00:00:00', 'America/New_York'),'TZD') AS TIMEZONE 
FROM DUAL ;

---
EST
Run Code Online (Sandbox Code Playgroud)

oracle timezone

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