声明在SQL CE变量(declare variables in sql ce)

2019-09-26 03:42发布

我试着在一个月内获得SQL精简版,从表中的记录。 这里是SQL查询,我知道:

DECLARE @startDate as DATETIME, @EndDate as DATETIME

@startDate = GetDate();
@ENdDate = DATEADD(m,1,@startDate)

select * from table where (columnname between @startdate and @enddate)

我知道,你必须在同一时间发送一个脚本,但你怎么能在SQL CE(我猜它不接受申报)声明变量?

Answer 1:

我想,我的回答是这个问题很迟,但希望这将是有用的人。
你不能声明在SQL CE一些变量,因为只有一个语句可以按命令中使用。 作为ErikEJ在此表示的链接 。

您需要重构自己的脚本来一个大的语句,如果可能的话!
我会很高兴听到一个更好的解决方案。



Answer 2:

看看后如何填充一个SQL Server Compact数据库? 看看是否有参考的工具可以帮助你。



Answer 3:

如果你把它通过应用程序(我不知道你是如何读取数据)

准备好你的查询就像这样:

select * from table where (columnname between ? and ?)

但我不知道你是否可以使用关键字之间。 可能是你需要改变这一点。

那么你需要添加SqlCeParameter对象是这样的:

cmd.Parameters.Add(new SqlCeParameter("p1", SqlDbType.DateTime, myDate));


Answer 4:

我不熟悉SQL-CE,但我认为你错过了一些Set语句。 试试这个

DECLARE @startDate as DATETIME, @EndDate as DATETIME

Set @startDate = GetDate();
Set @ENdDate = DATEADD(m,1,@startDate)

select * from table where (columnname between @startdate and @enddate)

更新查看在查询中使用的参数在从MSDN SQL CE参考。 你是正确的在申报是不是一个有效的关键字,所以你需要查询从应用本身的参数化版本。

select * from table where (columnname between ? and ?)



文章来源: declare variables in sql ce