我花了很多时间来解决这个问题的解决方案,所以本帖子的精神,我在这里发布,因为我觉得它可能对其他人有用.
如果有人有更好的脚本或任何要添加的内容,请发布.
编辑:是的,我知道如何在Management Studio中执行此操作 - 但我需要能够在另一个应用程序中执行此操作.
运行需要多长时间
ALTER DATABASE [MySite] SET READ_COMMITTED_SNAPSHOT ON
Run Code Online (Sandbox Code Playgroud)
我跑了它,花了10分钟.
如何检查是否已应用?
我们开始在应用程序中获得大量存储过程.其中许多是针对自定义报告的,其中许多报告已不再使用.有没有人知道我们可以在SQL Server 2005中的系统视图上运行的查询,它会告诉我们存储过程的最后执行日期?
我开发的软件在其数据库表(SQL Server版本8,9或10)中存储了大量数据.假设每天大约有100,000条记录插入到该表中.这大约是每年3600万条记录.由于担心我会失去性能,我决定每天创建一个新表(一个名称中包含当前日期的表)以降低每个表的记录数.
你能告诉我,这是不是一个好主意?SQL服务器表是否有记录限制?或者您知道在性能显着降低之前可以在表中存储多少条记录(或多或少)?
我使用了一个需要SQL字符串的API.我接受用户输入,将其转义并将其传递给API.用户输入非常简单.它要求列值.像这样:
string name = userInput.Value;
Run Code Online (Sandbox Code Playgroud)
然后我构造一个SQL查询:
string sql = string.Format("SELECT * FROM SOME_TABLE WHERE Name = '{0}'",
name.replace("'", "''"));
Run Code Online (Sandbox Code Playgroud)
这样安全吗?如果不是,是否有一个简单的库函数可以使列值安全:
string sql = string.Format("SELECT * FROM SOME_TABLE WHERE Name = '{0}'",
SqlSafeColumnValue(name));
Run Code Online (Sandbox Code Playgroud)
API使用SQLServer作为数据库.
我运行以下查询:
SELECT
orderdetails.sku,
orderdetails.mf_item_number,
orderdetails.qty,
orderdetails.price,
supplier.supplierid,
supplier.suppliername,
supplier.dropshipfees,
cost = (SELECT supplier_item.price
FROM supplier_item,
orderdetails,
supplier
WHERE supplier_item.sku = orderdetails.sku
AND supplier_item.supplierid = supplier.supplierid)
FROM orderdetails,
supplier,
group_master
WHERE invoiceid = '339740'
AND orderdetails.mfr_id = supplier.supplierid
AND group_master.sku = orderdetails.sku
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
消息512,级别16,状态1,行2子查询返回的值超过1.当子查询跟随=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做.
有任何想法吗?
我想写下面的查询:
SELECT ..., MIN(SomeBitField), ...
FROM ...
WHERE ...
GROUP BY ...
Run Code Online (Sandbox Code Playgroud)
问题是,SQL Server不喜欢它,当我想计算位字段的最小值时它返回错误Operand data type bit is invalid for min operator.
我可以使用以下解决方法:
SELECT ..., CAST(MIN(CAST(SomeBitField AS INT)) AS BIT), ...
FROM ...
WHERE ...
GROUP BY ...
Run Code Online (Sandbox Code Playgroud)
但是,有更优雅的东西吗?(例如,可能存在一个我不知道的聚合函数,它会评估and字段中位值的逻辑.)
这是我所知道的一个老问题,但是使用SQL Server 2012最终可以将文件存储在数据库中,还是应该将它们保存在文件系统中,只在数据库中引用它们?
如果将它们存储在数据库中这些天被认为是可接受的,那么最有效的方法是什么?我打算应用加密技术,所以我很欣赏处理速度不会太快.
谢谢
简单的问题,但我还是无法解决它...
我有一个带有DATETIME字段的表TEST,如下所示:
ID NAME DATE
1 TESTING 2014-03-19 20:05:20.000
Run Code Online (Sandbox Code Playgroud)
我需要的是下面的查询返回此行和每行的日期= 03/19/2014,无论什么时候是:
select * from test where date = '03/19/2014';
Run Code Online (Sandbox Code Playgroud)
但它不返回任何行.唯一的工作方式是指定时间:
select * from test where date = '03/19/2014 20:03:02.000';
Run Code Online (Sandbox Code Playgroud)
提前致谢 !