暂无个人介绍
2019年12月
你可以像这样确定一个表(和其他东西)上所有索引的大小:
EXEC sp_spaceused TableName;
至于全面分析,你可以:
SELECT *
FROM sys.dm_db_index_physical_stats(db_id(), object_id('TableName'), null, null, 'DETAILED');
使用DATEADD和DATEDIFF你可以计算你的财政年度:
DECLARE @year INT = 2015
SELECT
start_date = DATEADD(MONTH, 6, DATEADD(YEAR, DATEDIFF(YEAR, 0, DATEADD(YEAR, @year - 1900, 0)) - 1, 0)),
end_date = DATEADD(DAY, -1, DATEADD(MONTH, 6, DATEADD(YEAR, DATEDIFF(YEAR, 0, DATEADD(YEAR, @year - 1900, 0)), 0)))
要在存储过程中使用它:
CREATE PROCEDURE procedure_name
@year AS INT
AS
BEGIN
SET NOCOUNT ON
SELECT
start_date = DATEADD(MONTH, 6, DATEADD(YEAR, DATEDIFF(YEAR, 0, DATEADD(YEAR, @year - 1900, 0)) - 1, 0)),
end_date = DATEADD(DAY, -1, DATEADD(MONTH, 6, DATEADD(YEAR, DATEDIFF(YEAR, 0, DATEADD(YEAR, @year - 1900, 0)), 0)))
END
说真的,我看过这个,罪魁祸首有三件事: 1.当您对子报表进行更改并且报表数据不是当前的时,需要重新构建项目。
2.报告数据在某种程度上是损坏的,需要被删除(查看您的文件位置并删除*.rdl。数据文件)。
3.传入的参数错误或格式错误。所有带有参数的子报表都需要传递参数,否则它们将不会运行并给出一个相当于‘object set TO an instance of a null’的错误。
当你插入一个“子报告”,你可以右击并选择“属性”。它有一个“参数”侧面板,你需要选择,你需要“添加”(为每一个在正确的顺序和类型)一个“名称”(参数名称的报告)和匹配的“值”从当前的报告传递给它。
例如:如果我有一个子报告,希望客户显示他们的人口统计信息,而我有一个主报告,其中有业务数据行,每一行都有一个客户id。如果我的子报表接受一个‘CustomerID’参数,那么我就会将该参数作为名称,并从当前数据集中选择‘[Customer_ID]’传递给它。
您必须记住,您必须“添加”子报表所需的每个独立参数。
我猜您正在考虑如何创建主键?还有自动增量,您可能需要它下面是一个表创建的例子:、
CREATE TABLE `affiliation` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`affiliate_id` bigint(20) DEFAULT NULL,
`email_invited` varchar(255) DEFAULT NULL,
`email_provider` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8
下面的代码将告诉包含存储过程的数据库。
CREATE TABLE ##DatabasesContainingSP(dbname sysname, SPName SYSNAME);
EXECUTE master.sys.sp_MSforeachdb 'USE [?];
INSERT INTO ##DatabasesContainingSP
SELECT DISTINCT
db_name() as dbname, o.name AS Object_Name
FROM sys.sql_modules m
INNER JOIN
sys.objects o
ON m.object_id = o.object_id
WHERE o.name =''Sp_SystemAlert'';
'
SELECT * FROM ##DatabasesContainingSP
在 SQL Server 中,可以使用 apply:
select count(*)
from t cross apply
(values (t.col1), (t.col2), (t.col3), . . . ) v(col)
where v.col is null;
您需要列出 values()子句中的所有列。
Update #Circuits
SET CMLTotal = (select COUNT(u.Drawing)
from #UTCMLs u
where u.DRAWING = #Circuits.DRAWING
) +
(select COUNT(#UTCMLs.Drawing)
from #XRAYCMLs x
where x.DRAWING = #Circuits.DRAWING
);
如果您按照 MSDN - 如何:还原到时间点 (SQL 服务器管理工作室)(http://msdn.microsoft.com/en-us/library/ms190982.aspx)的说明,您应该是对的。我不会在这里复制它们,因为它们很长。还有 MSDN - 如何:还原事务日志备份(http://msdn.microsoft.com/en-us/library/ms177446.aspx)
你没有numberbuyers的文本属性。因此无法将文本框类型的对象转换为System.IConvertible类型。你可以这样解决
Convert.ToInt32(numberbuyers.Text)
如果 c# 代码执行没有任何异常,它也会更新数据库。您可能在您的ConnectionString中使用过 AttachDbFilename=|DataDirectory|\yourDB.mdf,这表示更新的数据库位于项目的子文件夹BIN\DEBUG文件夹中。如果您想查看更新后的数据,只需将位于ssms中的bin/debug文件夹中的数据库附加上去即可。还要确保服务器资源管理器中的表尚未打开,如果它已经打开,则必须刷新它以显示更新的数据。请注意:正如评论中所提到的,应该始终使用参数化查询来避免Sql注入。