小编itd*_*per的帖子

寻找数据库版本控制的解决方案

问题描述:

在我们的项目中,我们有一个"生产数据库"和许多"开发人员".我们想知道如何管理和安装更改.我们已经有一些程序,但需要花费很多时间,有时会导致错误.

我们不能丢失数据 - 所以我们不能使用"丢弃表".我们只能使用"alter table".

我们实际的"db版本化程序"是这样的:

  • 我们有一个名为[actual_version]的表,其中包含已安装的db模式的实际版本
  • 我们有一个名为"changes_script.sql"的文件,其中包含所有数据库更改 - 此文件存储在SVN上

当开发人员想要在SVN上提交新版本时,他需要通过添加块来更改change_script.sql:

if ([acctual_version].version < "23")) {
    --- sql script ----
updateVersionTo("23")
end if 
Run Code Online (Sandbox Code Playgroud)

当我们想要升级数据库模式时,我们只需"执行"change_scripts.sql

有没有人有更好的主意?

sql-server versioning

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

UPDATE SET中的子查询(sql server 2005)

我有一个关于在Update语句中使用子查询的问题.我的例子:

UPDATE TRIPS
   SET locations = city + ', ' FROM (select Distinct city 
                                       from poi 
                                      where poi.trip_guid = trips.guid) 
Run Code Online (Sandbox Code Playgroud)

是否可以在子查询中引用主表值(trips.guid)?

当我尝试使用时,trips.guid我收到错误:

"多部分标识符"trips.guid"无法绑定."

"从poi中选择独特的城市"这一条款更多地归功于一个城市.

sql-server-2005 subquery

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

LINQ - 动态orderby子句不起作用

我有这样的代码:

//build query
var shops = (from p in dataContext.shops
let distance = dataContext.GetDistance(p.lat, p.lon, nearlat,nearlon)
                     join c in dataContext.shops_category on p.id equals c.poi_id
                     select new ShopsModel { p = p, distance = distance }
                         );
        }
//add dynamic orderby
if(somthig) 
  shops.OrderBy(distance)
else 
  shops.OrderBy(p.name)


//get records.
return shop.Take(30).ToList()
Run Code Online (Sandbox Code Playgroud)

它除了OrderBy之外还可以正常工作.生成的SQL代码不包含orderby子句,并且不对记录进行排序.

任何的想法?感谢帮助.

.net linq dynamic-queries

5
推荐指数
1
解决办法
784
查看次数