我正在尝试在视图上创建索引。该视图包含在与其所基于的基础表不同的架构中。当我尝试创建视图时,出现以下错误:
消息 1938,级别 16,状态 1,第 1 行无法在视图“vwCdSimThk”上创建索引,因为基础对象“CDSIM_Thk”具有不同的所有者。
我对此感到困惑的是,我在至少 4 个不同的 SQL Server 服务器(每个包含相同的数据库架构)上创建了完全相同的视图和索引,而没有出现这样的错误。但是在这个特定的 SQL Sever 上,我收到了错误消息。需要明确的是,在所有其他服务器上,它所基于的视图和基础表在不同的模式中。
任何人都可以对此有所了解吗?是否需要更改服务器设置以允许这样做?
我正在创建一个脚本来自动配置 2 个数据库进行镜像,使用这个方法,但我想确保没有已经创建的端点或主密钥,所以我想首先做一些清理:
DROP ENDPOINT End_Mirroring;
DROP CERTIFICATE PRIM_cert;
DROP MASTER KEY
Run Code Online (Sandbox Code Playgroud)
但是只有当它们已经存在时,我怎么才能做到这些?(我需要这个来避免我的脚本以错误退出)
我想在 SYS.database_mirroring 上创建一个触发器,因为它不是一个真正的表,只是一个视图......我做不到。
我想知道字段 mirroring_state_desc 是否来自,以便我可以在更改时在该表上创建触发器。
我如何知道哪些表用于创建该视图?
我根据这篇文章设置了一些警报
现在我想让alert触发的Job向ac#应用程序发送一些信息(这个应用程序可以运行在SQL实例的同一台机器上,然后C#应用程序将信息发送到其他机器上)。
我的应用程序可以接受 TCP 连接,所以我正在考虑使用它,但也欢迎 SQL 服务器与我的应用程序通信的任何其他形式。
关于我如何做到这一点的任何建议?
*编辑: *能够通过 T-SQL 在另一个数据库(在其他情况下)中进行插入也可以解决我的问题。
背景信息: 我这样做是为了监视主体服务器何时公开运行以及镜像服务器何时同步。因此,如果证人出现故障,然后校长也出现故障,根据这些警报的记录,我可以判断将镜像升级为校长是否安全。
请注意,在这种情况下,我无法在不破坏镜像配置的情况下读取镜像数据库,因此在镜像数据库中使用表不是解决方案。
我好像记得前段时间读过一篇文章说我可以将一个 SQL Server 数据库拆分成多个文件,请允许我详细说明。
我有一个数据库,里面有十几个表,这些表反映了过去 'n' 年的统计数据。该表称为History2007,History2008等和当年的表就被称为History。前几年的所有表都包含静态数据(不会更改),我想将这些文件移动到链接到主数据库的另一个文件中。随着旧的数据表中包含外键Articles,Clients而Suppliers等我不能只是这些表复制到一个新的数据库。
整个想法是减少数据库和备份的大小,因为我可以对“旧”数据进行一次备份,并且直到明年才会改变。
有什么想法吗?想法?指导?
谢谢,马丁。
首先,我可以描述表的架构,但我的表本身大约是 80GB,所以我希望一些专家的眼睛可以看到可以执行的任何明显的优化。我正在进行一些基于活动的分析,以了解来自内部虚拟游戏环境的一组用户。
我有两个基表:
EventTable: Moderately big at 10GB
Activity_ID UserName ActivityStart ActivityEnd Badge
ActivityTable: Super big at 100GB
UserName ActivityTime Game1Points Game2Points
Run Code Online (Sandbox Code Playgroud)
简而言之,我正在尝试以下操作:
- For each activity in the EventTable:
- Compute the median of Game1Points, Game2Points
for two cases: for all entries in the ActivityTable
that were present since 1 hour before the activity
and for all entries stored during the activity itself
Run Code Online (Sandbox Code Playgroud)
因此,我期待的决赛桌是这样的:
ResultTable:
Activity_ID Badge Game1_Before Game1_During Game2_Before Game2_During
Run Code Online (Sandbox Code Playgroud)
这显然看起来像是CURSORs的工作,所以我首先使用这种方法编写了我的查询。它正在运行,我可以看到进度,但在阅读了这么多恐怖故事之后,我决定用基于集合的方法重写我的 200 行基于 CURSOR 的方法。这非常适用于小桌子。但是,对于我这种大小的桌子,它似乎停滞不前(或者至少我不确定应该运行多长时间)。我运行Display …
在对 SQL 2008 实例的性能问题进行故障排除时,我注意到有几个 SPID 似乎正在create procedure为现有过程执行语句。
这是 SQL 正常内部功能的一部分,还是我这里有一些奇怪的应用程序逻辑?我可以在 SSMS 中找到这些程序,它说它们是多年前创建的。
谢谢。
我有一个 SQL Server 数据库,其中包含多个客户/设备的数据。我们正在更改我们网站 (asp.net) 的前缀,我们的应用程序会根据 URL 的第一部分动态加载正确的连接字符串。相应地更改我的数据库名称是否安全,或者我应该简单地在连接字符串逻辑中放置一个条件语句以使新 URL 指向旧数据库?谢谢!
有没有办法以编程方式检索添加到表列和索引的每个 STATISTICS 的定义。对于用户添加的和系统创建的索引。Sql Server 添加了许多像“__WA_Sys_*”这样的统计信息。
我需要重新编写其中一些并添加更多内容,但是有太多内容无法使用 Management Studio 手动完成。
我WAITFOR在以下脚本中与游标结合使用:
create table orders(orderId int primary key,productId int,productName varchar(20));
insert into orders values(1,11,'book');
insert into orders values(2,13,'flower');
insert into orders values(3,24,'microwave');
insert into orders values(4,7,'food');
insert into orders values(5,46,'clothes');
declare cur cursor for
select * from orders;
open cur;
fetch next from cur;
while(@@fetch_status=0)
begin
waitfor delay '00:00:01';
fetch next from cur;
end;
close cur;
deallocate cur;
Run Code Online (Sandbox Code Playgroud)
我希望每 1 秒的指定间隔显示来自光标的一条记录。例如:显示第一行,然后等待一秒钟;显示第二行,然后稍等;等等。上面的光标不会这样做。说orders有 5 行。该WHILE块等待 5 秒钟,然后一起显示所有记录。
这是游标的错吗?如何修改此脚本以按预期工作?