我正在学习如何使用SQL Server 2008 R2的Service Broker.在完成单个数据库中的完成对话教程时.在第1课之后,我成功创建了消息类型,合同,队列和服务.在第2课之后,我可能已经发送了这条消息.但是,在尝试接收消息时,我获取的是NULL ReceivedRequestMsg而不是发送的内容.
在查看时sys.transmission_queue,transmission_status消息说:
在目标队列中排队消息时发生异常.错误:15517,状态:1.无法作为数据库主体执行,因为主体"dbo"不存在,此类主体不能被模拟,或者您没有权限.
我已经使用Windows登录安装了SQL Server Mycomp\Petr.我也在使用该登录课程.
你能猜出是什么问题吗?我应该检查和设置什么才能使其正常工作?
编辑2012/07/16:为了帮助重现问题,这就是我所做的.如果您按照下一步操作,是否可以重现错误?
首先,我使用的是Windows 7 Enterprise SP1和Microsoft SQL Server 2008 R2,开发人员版,64位(版本10.50.2500.0,根目录位于C:\ Program Files\Microsoft SQL Server\MSSQL10_50.SQL_PRIKRYL05\MSSQL) .
按照教程建议,我下载了AdventureWorks2008R2_Data.mdf示例数据库,并将其复制到C:\ Program Files\Microsoft SQL Server\MSSQL10_50.SQL_PRIKRYL05\MSSQL\DATA\AdventureWorks2008R2_Data.mdf
必须以"管理员"身份启动SQL Server Management Studio才能以后附加数据.然后我连接了SQL Server.
右键单击Databases,上下文菜单Attach ...,按钮Add ...,指向AdventureWorks2008R2_Data.mdf + OK.然后从下面的网格中选择AdventureWorks2008R2_Log.ldf(报告为未找到)并按下删除...按钮.按OK后,附加了数据库并自动创建了AdventureWorks2008R2_log.LDF.
以下查询用于查看"Service Broker enabled/disabled",以及启用(Service Broker已成功启用数据库):
USE master;
GO
SELECT name, is_broker_enabled FROM sys.databases;
GO
ALTER DATABASE AdventureWorks2008R2
SET ENABLE_BROKER
WITH ROLLBACK IMMEDIATE;
GO
SELECT name, is_broker_enabled FROM …Run Code Online (Sandbox Code Playgroud) 我想检索上次更新表(插入,删除,更新).
我试过这个查询.
SELECT last_user_update
FROM sys.dm_db_index_usage_stats
WHERE object_id=object_id('T')
Run Code Online (Sandbox Code Playgroud)
但是服务重启后数据不会持续存在.
即使服务重新启动,我也想保留统计信息.我怎样才能实现它?
我有两个列的巨大表:Id和Title.我是bigint,我可以自由选择Title列的类型:varchar,char,text等等.列标题包含随机文本字符串,如"abcdefg","q","allyourbasebelongtous",最多255个字符.
我的任务是通过给定子字符串获取字符串.子串也具有随机长度,可以是字符串的开始,中间或结尾.最明显的执行方式:
SELECT * FROM t LIKE '%abc%'
Run Code Online (Sandbox Code Playgroud)
我不关心INSERT,我只需要做快速选择.我该怎么做才能尽快进行搜索?
我使用MS SQL Server 2008 R2,全文搜索将毫无用处,据我所知.
sql sql-server full-text-search query-optimization sql-server-2008-r2
我首先使用Entity Framework 4.3.1代码进行显式迁移.如何在实体配置类或迁移中添加列的描述,以便最终作为SQL Server中列的描述(例如2008 R2)?
我知道我可以编写一个DbMigration类的扩展方法,该方法将迁移事务中的sql迁移操作注册sp_updateextendedproperty或sp_addextendedproperty过程调用,并在迁移Up方法中创建表后调用该扩展.但是,我还没有发现一种优雅的内置方式吗?拥有迁移的更改检测逻辑可以获取的属性并在scaffolded迁移中生成appropritate方法调用会很好.
我在Windows Server 2008中有sql server 2008 r2.但是当我尝试启动"SQL Server Browser"服务时,我收到以下错误: -
"无法启动该服务,因为它已被禁用,或者因为它没有与之关联的已启用设备." 那么可能导致此错误的原因是什么?
我对SQL Server有一个小问题:如何从这个表中获取最近30天的信息
样本数据:
Product:
Pdate
----------
2014-11-20
2014-12-12
2014-11-10
2014-12-13
2014-10-12
2014-11-15
2014-11-14
2014-11-16
2015-01-18
Run Code Online (Sandbox Code Playgroud)
基于此表数据,我想要输出如下
pdate
-------
2014-11-20
2014-12-12
2014-12-13
2014-11-16
Run Code Online (Sandbox Code Playgroud)
我试过这个查询
SELECT *
FROM product
WHERE pdate >= DATEADD(day, -30, getdate()).
Run Code Online (Sandbox Code Playgroud)
但它现在给出了确切的结果.请告诉我如何在SQL Server中解决此问题
sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012
创建了一个功能
CREATE FUNCTION Split_On_Upper_Case(@Temp VARCHAR(1000))
RETURNS VARCHAR(1000)
AS
BEGIN
DECLARE @KeepValues AS VARCHAR(50)
SET @KeepValues='%[^ ][A-Z]%'
WHILE PATINDEX(@KeepValues COLLATE Latin1_General_Bin,@Temp)>0
SET @Temp=STUFF(@Temp,PATINDEX(@KeepValues COLLATE Latin1_General_Bin,@Temp)+1,0,' ')
RETURN @Temp
END
Run Code Online (Sandbox Code Playgroud)
当iam试图执行此操作时SELECT Split_On_Upper_Case('SaiBharath')它会出现错误"'Split_On_Upper_Case'不是公认的内置函数名称.".有人可以解释一下这个
有人可以给我看一个示例SQL服务器脚本,我可以看看它使用"With Clause"吗?
我试图使用此子句迭代200个数据库,这些数据库包含我尝试运行查询的同一个表.我试图避免使用游标,因为查询时间太长以及使用while循环.
有人可以告诉我我能做什么.
谢谢.
我想在Column1和Column2中的SQL Server 2008 R2中创建索引以下查询的区别是什么:
不包括
CREATE NONCLUSTERED INDEX [IX_1] ON [dbo].[MyTable]
(
[Column1] ASC,
[Column2] ASC
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)或包括:
CREATE NONCLUSTERED INDEX [IX_2] ON [dbo].[MyTable]
(
[Column1] ASC
)
INCLUDE ([Column2]) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)刚刚在我的XP机器上安装了SQL Server 2008 R2 Developer Edition.没有SQL Server Management Studio(SSMS)的迹象.Aarg.我似乎无法在添加功能中看到该特定选项.我该怎么办?
我注意到我的机器已经安装了SQL Server 2008的安装文件.所以我卸载了所有东西 - 首先是R2然后是2008的设置,现在当我重新安装R2时,仍然没有选择功能列表中的SSMS.
救命!