以下陈述的linq等价物是什么?
IF NOT EXISTS(SELECT UserName FROM Users WHERE UserName='michael')
BEGIN
INSERT INTO Users (UserName) values ('michael');
END
Run Code Online (Sandbox Code Playgroud)
你也可以建议任何sql-to-linq转换器?我目前正在使用LINQPad,它在编写linq代码方面做得很好,你也可以看到生成的sql代码,但是当我点击小linq符号时,什么也没有显示.
我有一个具有28gig事务日志文件的数据库.恢复模式很简单.我刚刚对数据库进行了完整备份,然后运行了两个:
backup log dbmcms with truncate_only
DBCC SHRINKFILE ('Wxlog0', TRUNCATEONLY)
backup log dbmcms with truncate_only
DBCC SHRINKFILE ('Wxlog0', TRUNCATEONLY)
backup log dbmcms with truncate_only
DBCC SHRINKFILE ('Wxlog0', TRUNCATEONLY)
db的名称是db_mcms,事务日志文件的名称是Wxlog0.
两者都没有帮助.我不知道下一步该做什么.
我正在使用ms sql 2008并尝试创建引用另一个数据库的数据库名称.例如'Dev','Test','Demo'将是我可以从我的多个配置文件中引用的数据库名称,但每个名称将指向另一个数据库,例如'db20080101'或'db20080114'.
[编辑]有些配置是针对我控制代码的应用程序而有些则不是(例如MS报告服务数据源文件配置)[/编辑]
看来sqlserver只支持View,Table,Sproc或Function的同义词.Alias'用于表和列名称.
有没有办法做到这一点,我错过了文档?任何人对解决方法有任何建议吗?
我有一个扩展名为sqb的文件(例如:clark.sqb),我应该如何使用sqb文件恢复数据库.谢谢!
我正在尝试连接多个表,但其中一个表有一个具有不同日期的partid的多个记录.我希望得到最近日期的记录.
以下是一些示例表:
Table: MyParts
Partid Partnumber Description
1 ABC-123 Pipe
2 ABC-124 Handle
3 ABC-125 Light
Table: MyPrices
Partid Price PriceDate
1 $1 1/1/2005
1 $2 1/1/2007
1 $3 1/1/2009
2 $2 1/1/2005
2 $4 1/1/2006
2 $5 1/1/2008
3 $10 1/1/2008
3 $12 1/1/2009
Run Code Online (Sandbox Code Playgroud)
如果我只是想找到某个部分的最新价格,我可以做:
SELECT * FROM MyPrice WHERE PriceDate = (SELECT MAX(PriceDate)
FROM MyPrice WHERE Partid = 1)
Run Code Online (Sandbox Code Playgroud)
但是我想首先加入,然后为所有部分而不是一个部分找回正确的价格.这是我尝试过的:
SELECT * FROM MyParts LEFT JOIN MyPrice ON MyParts.Partid = MyPrice.Partid WHERE
MyPart.PriceDate = (SELECT MAX(PriceDate) FROM MyPrice) …
Run Code Online (Sandbox Code Playgroud) 有谁知道是否有一个加载项可以自动完成SQL Management Studio上的查询?
我正在使用CONTEXT_INFO将用户名传递给删除触发器,以用于审计/历史记录表.我试图理解CONTEXT_INFO的范围,如果我正在创造潜在的竞争条件.
我的每个数据库表都有一个存储过程来处理删除.delete stored proc将userId作为参数,并将CONTEXT_INFO设置为userId.我的删除触发器然后抓取CONTEXT_INFO并使用它来更新指示谁删除了行的审计表.
问题是,如果两个删除来自不同用户的sprocs同时执行,其中一个sprocs中设置的CONTEXT_INFO是否会被另一个sproc触发的触发器消耗?
我已经看过这篇文章http://msdn.microsoft.com/en-us/library/ms189252.aspx但是我不清楚SQL Server中的会话和批处理的范围,这是本文有用的关键!
我发布了代码,但此刻时间很短.如果不够清楚我会稍后编辑.
在此先感谢您的帮助.
sql-server triggers stored-procedures sql-server-2008 context-info
我正在重构一些代码.
现在有很多地方有这样的功能:
string error;
if (a) {
error = f1(a, long, parameter, list);
}
else {
error = f2(the_same, long, parameter, list);
}
Run Code Online (Sandbox Code Playgroud)
在重构f1和f2之前(虽然很大,但做类似的事情),我想重构为:
string error = (a ? f1 : f2)(a, long, parameter, list);
Run Code Online (Sandbox Code Playgroud)
就像在C中一样.(函数签名是相同的)
但是我收到一个错误:
"错误13无法确定条件表达式的类型,因为'方法组'和'方法组'之间没有隐式转换"
这将允许我通过初始重构给出不变行为来识别参数列表是相同的,并且还在单个位置重构调用,确保在这些各种重构期间所有内容都没有因为我将调用接口更改为方法而被破坏.
我错过了一些小的东西,它允许接近这个的语法工作(而不是一大堆额外的委托类型定义等)?
抱歉编辑,但实际上有一个返回值,是的,不幸的是,它是一个字符串.;-(
现在,我正在解决这个问题:
string error = a ? f1(a, long, parameter, list) : f2(a, long, parameter, list);
Run Code Online (Sandbox Code Playgroud)
问题是参数列表确实很长,并且会被重构,我宁愿先将它们合并,并在我更改时处理编译器错误.