小编Ahm*_*sna的帖子

SQL Server 2008R2 转换排序规则

我有一个使用Arabic_CI_AS排序规则的现有数据库,但我需要将其转换SQL_Latin1_General_CP1_CI_AS为服务器的默认排序规则,但问题是当我使用以下命令时:

USE master;
GO

ALTER DATABASE MyDB
COLLATE SQL_Latin1_General_CP1_CI_AS ;
GO
Run Code Online (Sandbox Code Playgroud)

它给了我以下错误消息:

消息 5075,级别 16,状态 1,第 1 行
对象“GetAllSuppliersInCompliance”依赖于数据库整理。如果模式绑定对象依赖于数据库排序规则,则无法更改数据库排序规则。删除对数据库排序规则的依赖,然后重试该操作。

消息 5075,级别 16,状态 1,第 1 行
对象“GetTier1SupplierComplianceStatus”依赖于数据库整理。如果模式绑定对象依赖于数据库排序规则,则无法更改数据库排序规则。删除对数据库排序规则的依赖,然后重试该操作。.....

消息 5072,级别 16,状态 1,第 1 行
ALTER DATABASE 失败。数据库“MyDB”的默认排序规则不能设置为 SQL_Latin1_General_CP1_CI_AS。

因此,我尝试使用以下命令暂时禁用约束:

EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"
Run Code Online (Sandbox Code Playgroud)

然后我执行了第一个命令,但是出现了同样的错误。

sql-server sql-server-2008-r2

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

对除一个 mysql 以外的所有数据库授予选择权限

我在 MS Windows 2008R2test_user下有名为created 的用户MySQL 5.5.17,我想授予该用户对除 MySQL 数据库以外的所有数据库的选择权限,注意我在这个实例中有大约 200 个数据库。

编辑:

在此处输入图片说明

编辑2:

在此处输入图片说明

mysql permissions mysql-5.5

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

非标准端口的 MySQL 复制 (3306)

我想在MS Windows 2008 R2下使用MySQL 5.6.14进行MySQL复制,Master和Slave的端口应该是1000(PC1上的主库,PC2上安装的从库)。

我为 master 添加了以下参数 My.ini

[mysqld]
server-id=1
log-bin=black-bin.log
datadir=d:\mysql\master\
innodb_flush_log_at_trx_commit=1
sync_binlog=1
Run Code Online (Sandbox Code Playgroud)

然后我编辑从My.ini添加以下参数:

[mysqld]
server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
datadir=d:\mysql\slave
Run Code Online (Sandbox Code Playgroud)

之后,我使用 root 用户登录到 Master 数据库并执行以下命令

CREATE USER repl_user@slave_ip;
GRANT REPLICATION SLAVE ON *.* TO repl_user@slave_ip IDENTIFIED BY 'password';
Run Code Online (Sandbox Code Playgroud)

为了初始化复制,我登录到从数据库并执行以下命令:

CHANGE MASTER TO MASTER_HOST='maset_ip',
 -> MASTER_USER='repl_user',
 -> MASTER_PASSWORD='password';
start slave;
Run Code Online (Sandbox Code Playgroud)

如果 master 的端口是 3306,则复制工作正常,但如果端口更改,则它不再工作。我的问题是:如何让从设备连接到端口 1000?我尝试将以下参数添加到从属my.ini master-port=1000然后重新启动从属 SID 但它不起作用(服务未启动,错误消息:未知参数主端口)。请指教,谢谢。

mysql replication

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

Processlist 显示大多数查询正在发送数据以供选择查询

我遇到了一些问题,比如在processlist. 在我的应用程序中,我使用了一次发送 50 个计数的并行处理,这将执行一些 MySQL 数据库操作(选择和插入),但几分钟后什么也没发生。然后我在数据库中看到 SHOWPROCESSLIST;大部分查询处于 SENDING DATA 状态,有 1001 个线程。我的最大查询大小是 1000。我将大小从 50 减小到 10,但没有运气。谁能建议我如何解决这个问题。

mysql select

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

事务中的触发器是否仅在事务提交时触发?

我是一名开发人员,但我转向 dba 社区询问以下问题。

我正在用 C# 编写集成测试。在这个测试中,我首先启动一个事务,并且总是回滚,因此无论测试成功还是失败,都不会向数据库提交任何内容。

开始事务后,我在表中插入了一些东西。这个表上有一个插入触发器,但我觉得这个触发器只有在我提交事务时才会触发。

这是真的?

有没有办法让我在交易中触发触发器?

所以在运行时发生的是:

  • 插入表A
    • 触发器被触发并插入表 B

我的测试中发生的事情是:

  • 开启交易
  • 插入表A
  • 检查表 B --> 插入尚未执行

trigger sql-server transaction

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

如何知道谁删除了数据库

我在SQL服务器中有很多数据库,但其中一个已被删除,因此当有人尝试删除另一个数据库时,我需要创建一个触发器来向我发送电子邮件。电子邮件应包含用户名和数据库名称。

sql-server

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

从列值应该不同的表中选择值

假设表中有 4 列。

cpt,cpt4mod,itemcharge,eff_date.
Run Code Online (Sandbox Code Playgroud)

条件1:如果值cpt,cpt4itemcharge是一样的,但是eff_date是不同的。然后我需要根据eff_date.

condtition2:如果值cptcpt4是相同的,但eff_dateitemcharge不同。然后我需要根据eff_date.

条件3:如果所有列都具有相同的值,那么我需要根据 eff_date

条件 4:如果 的值cpt,cpt4and,eff_date相同但itemcharge 不同。然后我需要获取除最新记录之外的所有记录

join sql-server group-by

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

列出所有未连接到 SQL 服务器的数据库

我正在将数据库从一个实例移动到另一个实例(通过从第一个实例分离数据库,将MDF文件移动并记录到另一个位置,并将它们附加到新实例),不幸的是无法附加其中的一些,并且错过了计算的数据库数量有问题,如何MDF从特定目录检查所有未附加到 SQL 服务器的文件。

sql-server sql-server-2016

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