我正在开发一个使用SQL Server 2005作为数据存储的开源项目.我们需要一个DB比较工具来生成diff脚本,以便能够将DB从一个版本升级到另一个版本.
是否有一个开源或免费的SQL Server数据库差异工具,生成转换脚本?
我有一个约有250个表的SQL 2005数据库.
我想暂时为所有外键启用ON DELETE CASCADE,以便我可以轻松地进行批量删除.
然后,我想关闭所有外键上的ON DELETE CASCADE.
我知道这样做的唯一方法是使用Management Studio生成完整的数据库创建脚本,进行某种搜索和替换以除去外键以外的所有内容,保存脚本,然后再做一些搜索并替换添加ON DELETE CASCADE.
然后我运行脚本,执行删除操作,然后运行其他脚本.
是否有更简单的方法来生成此脚本?这种方法似乎太容易出错,我将不得不使用我们对数据库进行的任何其他更改使脚本保持最新,或者每次我需要使用它时手动重新生成它.
是否可以在系统表上运行select来为我"生成"脚本?甚至可以在启用和禁用ON DELETE CASCADE的系统表上运行更新吗?
有没有办法进入SQL Server Management Studio中的存储过程代码?我知道Visual Studio可以实现这一点,但我正在寻找Management Studio中可靠的调试解决方案
我在Visual Studio 2008中启用了它,但我真的想在SQL Server Management Studio 2005 Express中启用此功能.有谁知道它可能吗?也许在以后的版本?
编辑:对不起,我的意思是在文本/查询编辑器中.
在Microsoft SQL Server 2005中,为什么以下命令会生成整数结果?
SELECT cast(151/6 AS DECIMAL(9,2))
SELECT 151/6
Run Code Online (Sandbox Code Playgroud) 我正在验证一个包含电子商务网站的交易级别数据的表格,并找到确切的错误.
我希望您的帮助在SQL Server上的50列表中查找重复记录.
假设我的数据是:
OrderNo shoppername amountpayed city Item
1 Sam 10 A Iphone
1 Sam 10 A Iphone--->>Duplication to be detected
1 Sam 5 A Ipod
2 John 20 B Macbook
3 John 25 B Macbookair
4 Jack 5 A Ipod
Run Code Online (Sandbox Code Playgroud)
假设我使用以下查询:
Select shoppername,count(*) as cnt
from dbo.sales
having count(*) > 1
group by shoppername
Run Code Online (Sandbox Code Playgroud)
会回来的
Sam 2
John 2
Run Code Online (Sandbox Code Playgroud)
但我不想找到重复超过1或2列.我想在我的数据中找到所有列的副本.我希望结果如下:
1 Sam 10 A Iphone
Run Code Online (Sandbox Code Playgroud) 我目前正在进行一些测试,以确定在SQL Server 2005中为某个列包含索引的性能影响.
我使用的测试数据集大约有大约7200万行(大约6 GB的数据).为了实际测试索引的性能,我需要能够比较有和没有索引的性能.
这一切都很好,但首先创建一个索引并不是一个便宜的操作.如果我想在没有索引的情况下测试表,我至少需要禁用索引.要使用索引进行测试,我需要重新启用它,这需要相当长的时间.
有没有什么办法可以强制SQL Server 2005在执行查询时忽略给定的索引?我不想为了测试查询而禁用索引,因为它需要很长时间来禁用索引.
我正在研究SQL Server 2005的查询,需要返回带有两个"索引"字段的数据.每次'shade'列更改时,第一个索引't_index'应该递增,而第二个索引在'shade'列中的值的分区内递增:
t_index s_index shade
1 1 A
1 2 A
1 3 A
1 4 A
1 5 A
2 1 B
2 2 B
2 3 B
2 4 B
2 5 B
Run Code Online (Sandbox Code Playgroud)
要获取s_index列,我使用以下内容:
Select ROW_NUMBER() OVER(PARTITION BY [shade] ORDER BY [shade]) as s_index
Run Code Online (Sandbox Code Playgroud)
我的问题是如何让第一个索引只在'shade'列中的值发生变化时递增?
我一直试图弄清楚为什么SQL Server有db_owner架构和db_owner角色?这非常令人困惑.我一直在寻找答案,到目前为止,我的理解是:
DBO是默认架构.如果其中任何一个不正确,请告诉我.但我认为到目前为止一切顺利.现在我的问题是:
db_owner在SQL Server Management Studio的"数据库用户"对话框中看到的模式究竟是什么?在同一个对话框中,您将"默认架构"定义为dbo.为什么两者不一样?如果默认情况下SQL Server dbo用来创建所有对象,有什么用db_owner?db_accessadmin给你?db_owner架构和db_accessadmin架构下创建对象?换句话说,有人合法地使用这些模式吗?我有一个服务器(SQL Server 2005)有超过300个数据库.我不想一个一个地右键单击并选择Delete.
如何轻松删除所有数据库?