目前,我将查询放在这样的变量中。
query = @" select top 1
u.UserID
from
dbo.Users u
where
u.SystemUser = 1
and u.Status = @Status";
这样做的问题是在换行时缩进丢失了,我必须自己添加它。
有谁知道更好的方法?我知道存储过程是一种可能性(消除这个缩进问题),但我不确定它们是否一定更适合纯数据检索。
最佳答案
忽略 TSQL 的仇恨者;了解一些 TSQL 并没有本质上的错误!无论如何,我会通过以下方式解决这个问题(如果我保留您的格式,这不是我的规范 - 但是......meh);
// your existing code at, say, this level
var query = @"
select top 1
u.UserID
from
dbo.Users u
where
u.SystemUser = 1
and u.Status = @Status";
// some more code at, say, this level
通过将 TSQL 保持在左侧,在 IDE 中更容易进行任何缩进等操作,但它也使您的 TSQL 更短,并且在查看跟踪时更易于调试,因为它不是奇怪的 30 多个字符. 在
select
之前以换行符开头也有助于保持整洁。就我个人而言,我也发现代码缩进和 TSQL 缩进之间的不相交有助于找到 TSQL——而 TSQL 对我来说非常重要,所以这是一件好事。强调我们刚刚切换了“世界”(因为想要一个更好的术语)也无害。
关于c# - 在变量中存储 SQL 的最佳方式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6941287/