小编Kev*_*ild的帖子

sqlserver中事务的基本模板

如果我只是用我的查询包装:

BEGIN TRANSACTION



COMMIT TRANSACTION
Run Code Online (Sandbox Code Playgroud)

如果内部有任何失败,它会自动回滚吗?

从查看其他代码,他们似乎检查错误,如果有错误,然后他们执行GOTO语句,然后调用ROLLBACK TRANSACTION

但这似乎是分配工作,必须在每次插入/更新后检查IF(@@ ERROR <> 0).

sql-server transactions

15
推荐指数
2
解决办法
6469
查看次数

如何确保Linq to Sql不会覆盖或违反不可空的数据库默认值?

我有一个带有这些字段的表的SQL Server数据库:

  1. A bit的默认值为1 , NOT NULL.
  2. A smalldatetime具有默认值gettime(),NOT NULL.
  3. 一个int没有默认值,IDENTITY,NOT NULL.

当我为此表生成Linq to SQL时,会发生以下情况:

  1. 在bit没有给出特殊处理.
  2. 在smalldatetime没有给出特殊处理.
  3. 将int被标记为IsDbGenerated.

这意味着当我使用Linq to SQL进行插入时,将发生以下情况:

  1. 在bit将被发送为0,覆盖默认值.对?
  2. 在smalldatetime将被作为一个未初始化的System.DateTime,生产在SQL服务器错误,因为它不与SQL Server的SMALLDATETIME范围不同.对?
  3. 该IsDbGenerated int不会被发送; DB将生成一个Linq to SQL将读回的值.

我必须做出哪些更改才能使此方案有效?

总结一下:我想要具有DB分配的默认值的非可空字段,但是IsDbGenerated如果它意味着在使用Linq to SQL进行更新或插入时我无法为它们提供值,则我不需要它们.IsDbGenerated如果这意味着我必须手动修改Linq生成的代码到SQL,我也不想要它们.

编辑:答案似乎是这是当前Linq to SQL的限制.

c# sql linq sql-server-2005 linq-to-sql

14
推荐指数
1
解决办法
2828
查看次数

如何从另一个SQL脚本中调用SQL脚本?

我想调用一系列.sql脚本来创建初始数据库结构

  1. script1.sql
  2. script2.sql等

有没有办法在没有sqlcmd或存储过程或任何其他类型的代码不是sql的情况下执行此操作?就在一个.sql文件里面.

sql-server sql-server-2005

13
推荐指数
2
解决办法
2万
查看次数

如何让Visual Studio 2008编辑SSRS 2005报表项目没有安装SQL Business Intelligence Development Studio 2005?

我正在尝试确定如何使用Visual Studio 2008打开/编辑现有SQL Server Reporting Services(SSRS)2005报表项目(.rptproj)和报表(.rdl),而无需安装SQL Business Intelligence Development Studio(BIDS)2005 .

sql-server-2005 report visual-studio-2008 reporting-services

12
推荐指数
2
解决办法
2万
查看次数

可以将MS SQL 2005备份还原到MS SQL 2008的实例上吗?

是否可以将SQL Server 2005数据库的备份还原到SQL Server 2008的实例上?

我需要重建服务器,因为它变得相当苛刻,所以我打算借此机会升级到SQL 2008,并想知道我是否能够恢复备份.

sql-server backup sql-server-2005

12
推荐指数
1
解决办法
4万
查看次数

ASP.NET MVC:使用LINQ To SQL将表单复选框转换为多对多DB关联表的最佳方法?

我有一个ASP.NET MVC视图,其中包含用户定义类别的复选框.

<td><% foreach (Category c in (List<Category>)ViewData["cats"]) {
       if (selCats.ContainsKey(c.ID)) { %>
       <input name="CategoryIDs" type="checkbox" value="<%=c.ID %>" checked="checked" />&nbsp;<%= c.Name%><% } 
        else { %>
       <input name="CategoryIDs" type="checkbox" value="<%=c.ID %>" />&nbsp;<%= c.Name%> <% } %>
     <% } %>
</td>
Run Code Online (Sandbox Code Playgroud)

表单将发布到以下控制器操作:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, int [] CategoryIDs)
{
    PostsDataContext db = new PostsDataContext();
    var post = db.Posts.Single(p => p.ID == id);
    UpdateModel(post, new[] { "Title", "Subtitle", "RawContent", "PublishDate", "Slug" });
    db.SubmitChanges();
    return Redirect("/archives/" + post.Slug);
}
Run Code Online (Sandbox Code Playgroud)

表单复选框将转换为整数ID"CategoryID"的数组,每个ID表示一个选定的类别.然后我想把它们放到一个包含两列的关联表中:PostID和CategoryID.这用于在帖子和类别之间建立多对多关联.

目前我正在强制它:循环遍历类别,并为每个类别添加一行到包含类别ID的关联表,以及它所属的帖子的ID.

但我想知道在ASP.NET …

.net forms asp.net-mvc linq-to-sql

12
推荐指数
1
解决办法
4633
查看次数

如何应对"磁盘已满"的情况?

绝大多数应用程序无法正确处理"磁盘已满"方案.

示例:安装程序没有看到磁盘已满,忽略所有错误,最后愉快地宣布"安装完成!",或者电子邮件程序不知道它刚下载的消息无法保存,并告诉服务器删除原始.

有什么技术可以优雅地处理这种情况?你用它们吗?你测试它们吗?

error-handling diskspace

10
推荐指数
1
解决办法
1888
查看次数

SQL代理作业:确定它运行的时间

情景

某些SQL代理作业计划在一天中每隔几分钟运行一次.

在合法的时间里,它会错过下一个时间表,因为它仍然按照之前的时间表运行.

每隔一段时间,一份工作可能会"挂起".这不会导致失败(因为作业尚未停止).发生这种情况时,可以手动停止作业,并在下次运行时正常工作.它的设计目的是从它停止的地方回来.

什么是最有效的方式......?

我想要一种方法来确定名为"JobX"的SQL代理作业当前正在运行多长时间(以秒为单位).如果它当前没有运行,我们可以返回零.

这样,如果工作已经超过某个阈值的时间,我可以停止工作.

我认为xp_sqlagent_enum_jobs和sysjobhistory的组合可以使用,但我是否有更好的解决方案在那里好奇...并希望能够从其余的你已经运行到和周围工作的障碍受益.

sql sql-server sql-server-2008 sql-agent-job

10
推荐指数
1
解决办法
2万
查看次数

获取对象的DataContext

如果我有LINQ对象:

public class SampleDataContext : DataContext {
    public Table<Customer> Customers { get { return this.GetTable<Customer>(); } }
    public SampleDataContext( string connectionString ) : base( connectionString ) { }
}

[Table( Name="dbo.tblCustomers" )]
public class Customer {
    private Guid? customerID;
    [Column( Storage="customerID", DbType="uniqueidentifier NOT NULL", IsPrimaryKey=true )]
    public Guid? CustomerID {
        get { return this.customerID; }
        set { this.customerID = value; }
    }

    private string customerName;
    [Column( Storage = "customerName", DbType = "nvarchar(255) NOT NULL" )]
    public string CustomerName {
        get …
Run Code Online (Sandbox Code Playgroud)

.net datacontext linq-to-sql c#-3.0

9
推荐指数
1
解决办法
6625
查看次数

将标题存储在数据库中以便在没有前导"The","A"的情况下进行排序的最佳方法是什么?

我运行(目前正在全面检修)一个处理影院的网站(njtheater.com,如果你有兴趣的话).

当我从数据库中查询播放列表时,我希望"威尼斯商人"在"M"下排序.当然,当我显示剧本名称时,我需要前面的"The".

设计数据库来处理这个问题的最佳方法是什么?

(我正在使用MS-SQL 2000)

sql-server database-design sql-server-2000

8
推荐指数
1
解决办法
524
查看次数