我在生产服务器(SQL Server 2012)中有一个数据库,我有一个开发服务器(SQL Server 2014)。
我需要在开发服务器中附加数据库,但我意识到一旦附加它就会自动升级到 2014 版,因此我无法在生产服务器中再次附加它。
是否可以在不升级的情况下将数据库附加到开发服务器中?
我们计划在开发、分离和将其附加到生产中进行更改。
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 …
我有一个长时间运行的扩展事件会话,它捕获rpc_completed为几个过程过滤的事件。它发现了一些已经运行的。但其他人当我知道他们已被处决时,它并没有捕捉到他们。我知道这一点的原因是因为我查看了缓存并发现它们在那里被调用。
我正在使用 SQL Server 2016。我将过滤object_name作为字段名称、equal_i_sql_unicode_string运算符和值减去架构名称。我还修改了会话以添加我知道经常使用的 proc,它可以很好地捕获那些。
为什么它会忽略而不捕获一些?
我正在尝试使用来自程序命令的 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 什么也不做),我错过了什么?
在文档中它说'最好使用固定的命令字符串'而不是你只能使用固定的命令字符串......
如何使用动态命令字符串?
可以使用 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
我正在努力处理随机返回多行而不是一行的查询。我正在使用 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是主键。
它是通过一系列集成测试执行的。当我只执行上述查询的测试时,我没有任何问题。但是,当我执行所有测试时,我随机得到多行。你有什么建议吗?
我不确定这是否可行,但是在编写查询以从表中进行选择时,当我使用 CTRL + 空格键调出智能感知下拉菜单时,它会为我提供所有变量的列表(全局变量和表中的变量)。
有什么办法可以让它只显示我从中选择的表中的变量?除非您已经知道该字段的名称,否则它基本上完全没用,那么智能感知下拉的重点是什么?
我试图在存储过程中设置一个输出参数,但我认为当我回滚事务时,我认为我也将分配回滚到@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
我一直在尝试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 中执行相同的操作。
我在 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) sql-server ×6
postgresql ×2
alter-table ×1
attach ×1
concurrency ×1
copy ×1
intellisense ×1
listener ×1
mysql ×1
mysql-8.0 ×1
oracle ×1
ssdt ×1
ssms ×1
timezone ×1
update ×1