当我尝试调用包含SELECT语句的存储过程时,我收到以下错误:
该操作对交易状态无效
这是我的电话结构:
public void MyAddUpdateMethod()
{
using (TransactionScope Scope = new TransactionScope(TransactionScopeOption.RequiresNew))
{
using(SQLServer Sql = new SQLServer(this.m_connstring))
{
//do my first add update statement
//do my call to the select statement sp
bool DoesRecordExist = this.SelectStatementCall(id)
}
}
}
public bool SelectStatementCall(System.Guid id)
{
using(SQLServer Sql = new SQLServer(this.m_connstring)) //breaks on this line
{
//create parameters
//
}
}
Run Code Online (Sandbox Code Playgroud)
我在问题中创建了另一个与同一数据库的连接的问题吗?
我已经看到在插入后检索主键标识字段的值时使用的各种方法.
declare @t table (
id int identity primary key,
somecol datetime default getdate()
)
insert into @t
default values
select SCOPE_IDENTITY() --returns 1
select @@IDENTITY --returns 1
Run Code Online (Sandbox Code Playgroud)
在插入后返回标识表:
Create Table #Testing (
id int identity,
somedate datetime default getdate()
)
insert into #Testing
output inserted.*
default values
Run Code Online (Sandbox Code Playgroud)
什么方法适当或更好?OUTPUT方法是否范围安全?
我试图VARBINARY(MAX)使用SQL确定SQL Server 2005中字段中内容的大小.我怀疑是否有本机支持,可以使用CLR集成吗?任何想法将不胜感激.
我需要能够为SQL Server 2008中的现有表获取CREATE脚本.我假设我可以通过以某种方式查询sys.tables来执行此操作,但是这不会返回给我CREATE脚本数据.
当我不小心点击Database Diagrams选项卡时,我收到以下错误之一:
无法安装数据库关系图支持对象,因为此数据库没有有效的所有者.要继续,首先使用"数据库属性"对话框的"文件"页面或ALTER AUTHORIZATION语句将数据库所有者设置为有效登录,然后添加数据库关系图支持对象.
- - 要么 - -
数据库没有使用数据库图表所需的一个或多个支持对象.你想创造它们吗?
将此数据库的所有者更改为"sa"的语法是什么?
如何排除DateTime星期六或星期日列中的值?
例如,给出以下数据:
date_created
'2009-11-26 09:00:00' -- Thursday
'2009-11-27 09:00:00' -- Friday
'2009-11-28 09:00:00' -- Saturday
'2009-11-29 09:00:00' -- Sunday
'2009-11-30 09:00:00' -- Monday
Run Code Online (Sandbox Code Playgroud)
这是我正在寻找的结果:
date_created
'2009-11-26 09:00:00' -- Thursday
'2009-11-27 09:00:00' -- Friday
'2009-11-30 09:00:00' -- Monday
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有两个大表的SQL Server 2008 Ent和OLTP数据库.如何在不中断服务的情况下将此表移动到另一个文件组?现在,在此表中,每秒插入约100-130条记录和30-50条记录.每个表有大约100M记录和六个字段(包括一个字段地理).
我通过谷歌寻找解决方案,但所有解决方案都包含"创建第二个表,从第一个表插入行,删除第一个表,bla bla bla".
我可以使用分区功能来解决这个问题吗?谢谢.
任何人都可以指出如何检查选择查询是否返回非空结果集?
例如,我有下一个查询:
SELECT * FROM service s WHERE s.service_id = ?;
Run Code Online (Sandbox Code Playgroud)
我应该做下一件事:
ISNULL(SELECT * FROM service s WHERE s.service_id = ?)
Run Code Online (Sandbox Code Playgroud)
测试结果集是否为空?
有人可以让我快速概述使用以下两个陈述的利弊:
TRUNCATE TABLE dbo.MyTable
Run Code Online (Sandbox Code Playgroud)
VS
DELETE FROM dbo.MyTable
Run Code Online (Sandbox Code Playgroud)
看来和完成所有事情似乎他们都做了同样的事情; 但这两者之间是否存在差异?
sql-server ×10
sql ×4
t-sql ×4
.net ×1
c# ×1
clr ×1
database ×1
date ×1
filegroup ×1
identity ×1
permissions ×1
sql-delete ×1
transactions ×1
truncate ×1
weekend ×1