Tag: sql server

在SQL Server Express中复制数据库?

我想制作一个我有的数据库的副本,但保存在与testing数据库相同的服务器上。 不过,我发现的一切都是使用复制数据库向导(我正在使用MS SQL Server Express)。 说明总是这样说:在SQL Server Management Studio的对象资源pipe理器中,展开“数据库”,右键单击数据库,指向“任务”,然后单击“复制数据库”。 我没有复制数据库选项。 我作为pipe理员运行,所以不知道为什么它是我失踪 – 是我必须分开安装? 我不能做分离/附加,因为它是复制到同一台服务器。 我尝试分离,复制MDF / LDF,重命名,附加,但你可以想像,搞砸了一吨:)我不是很好的SQL以编程方式做这一切。 有没有我可以使用的工具?

SQL Server Management Studio和Express版本有什么区别?

我目前正在使用Express。 使用完整版本可以获得哪些额外function?

SQL Server 2008全文search(FTS)与Lucene.NET

我知道过去有一些关于SQL 2005和Lucene.NET的问题,但是自从2008年出来以后,他们做了很多的改变,想知道是否有人可以给我优点/缺点(或者链接到一篇文章)。

触发器在表上时,不能使用带有OUTPUT子句的UPDATE

我使用OUTPUT查询执行UPDATE : UPDATE BatchReports SET IsProcessed = 1 OUTPUT inserted.BatchFileXml, inserted.ResponseFileXml, deleted.ProcessedDate WHERE BatchReports.BatchReportGUID = @someGuid 这句话很好,很好。 直到在桌上定义一个触发器。 然后我的UPDATE语句会得到错误334 : 如果语句包含不带INTO子句的OUTPUT子句,则DML语句的目标表“BatchReports”不能具有任何已启用的触发器 现在,SQL Server团队在博客文章中解释了这个问题: 错误消息是不言自明的 他们也提供解决scheme: 该应用程序已更改为使用INTO子句 除了我不能整个博客文章的正面或反面。 所以让我问我的问题:我应该改变我的UPDATE ,以便它的工作? 也可以看看 更新与OUTPUT子句 – 触发器和SQLMoreResults 为什么MERGE语句的目标表不允许启用规则? 语句包含一个没有INTO子句错误的OUTPUT子句

使用Dapper.NET一次往返多个SQL语句

在ADO.NET中有一个很好的function,允许您在一个往返中将多个SQL语句发送到数据库,并接收所有语句的结果: var command = new SqlCommand("SELECT count(*) FROM TableA; SELECT count(*) FROM TableB;", connection); using(var reader = command.ExecuteReader()) { reader.Read(); resultA = reader.GetInt32(0); reader.NextResult(); reader.Read(); resultB = reader.GetInt32(0); } Dapper.NET中是否有类似的function?

C#SQL顶部作为参数

尝试在我的sql语句中参数化TOP的值。 SELECT TOP @topparam * from table1 command.Parameters.Add("@topparam",SqlDbType.VarChar, 10).Value = somevalue.ToString(); 这似乎并不奏效。 任何人有任何build议? 只是为了澄清,我不想使用存储过程。

testing列存在,添加列和更新列

我正在尝试编写一个SQL Server数据库更新脚本。 我想testing表中是否存在列,如果不存在,则添加具有默认值的列,最后根据同一表中不同列的当前值更新该列。 我希望这个脚本可以多次运行,第一次更新表,并在随后的运行脚本应该被忽略。 我的脚本目前看起来如下所示: IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'PurchaseOrder' AND COLUMN_NAME = 'IsDownloadable') BEGIN ALTER TABLE [dbo].[PurchaseOrder] ADD [IsDownloadable] bit NOT NULL DEFAULT 0 UPDATE [dbo].[PurchaseOrder] SET [IsDownloadable] = 1 WHERE [Ref] IS NOT NULL END SQL Server返回错误“无效的列名”IsDownloadable'“,即我需要提交DDL才能更新列。 我尝试了各种排列,但是我无法快速完成。

newid()里面的sql serverfunction

我必须在查询结果中插入一个伪列,这是表值函数的返回值。 该列数据types必须是唯一标识符。 最好的方法(我认为…)是使用newid()函数。 问题是,我不能在这种types的函数中使用newid() : Invalid use of side-effecting or time-dependent operator in 'newid()' within a function.

select中的SQL用户定义的函数

我在SQL中有一个用户定义的函数getBuisnessDays它采用@startdate和@enddate,并返回两个date之间的工作天数。 如何在我的select中调用该函数? 这是我想要做的.. SELECT getBusinessDays(a.opendate,a.closedate) FROM account a WHERE …

CTE错误:“锚点和recursion部分之间的types不匹配”

我正在执行以下声明: ;WITH cte AS ( SELECT 1 as rn, 'name1' as nm UNION ALL SELECT rn + 1, nm = 'name' + CAST((rn + 1) as varchar(255)) FROM cte a WHERE rn < 10) SELECT * FROM cte …完成错误… Msg 240, Level 16, State 1, Line 2 Types don't match between the anchor and the […]