Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQLCE中声明变量_Sql_Sql Server 2005_Sql Server Ce - Fatal编程技术网

在SQLCE中声明变量

在SQLCE中声明变量,sql,sql-server-2005,sql-server-ce,Sql,Sql Server 2005,Sql Server Ce,我正在尝试在sql compact edition中在一个月内从表中获取记录。 以下是我知道的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 compact edition中在一个月内从表中获取记录。 以下是我知道的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中声明变量(我想它不接受声明)?

我不熟悉sql-ce,但我认为您缺少一些
Set
语句。试试这个:

更新 请参阅MSDN中的SQL CE参考。您的正确之处在于Declare不是有效的关键字,因此您需要从应用程序本身将查询作为参数化版本


select*from table where(columnname介于?和?)
我不熟悉SQL-CE,但我认为您缺少一些
Set
语句。试试这个:

更新 请参阅MSDN中的SQL CE参考。您的正确之处在于Declare不是有效的关键字,因此您需要从应用程序本身将查询作为参数化版本

从表格中选择*(columnname介于?和?)查看帖子
并查看此处引用的工具是否对您有所帮助。

请查看帖子
并查看此处引用的工具是否可以帮助您。

如果您通过应用程序调用它(我不确定您如何读取数据)

按如下方式准备查询:

select * from table where (columnname between ? and ?)
cmd.Parameters.Add(new SqlCeParameter("p1", SqlDbType.DateTime, myDate));
但是我不确定你是否可以使用between关键字。也许你需要改变这个

然后,您需要添加SqlCeParameter对象,如下所示:

select * from table where (columnname between ? and ?)
cmd.Parameters.Add(new SqlCeParameter("p1", SqlDbType.DateTime, myDate));

如果您通过应用程序调用它(我不确定您如何读取数据)

按如下方式准备查询:

select * from table where (columnname between ? and ?)
cmd.Parameters.Add(new SqlCeParameter("p1", SqlDbType.DateTime, myDate));
但是我不确定你是否可以使用between关键字。也许你需要改变这个

然后,您需要添加SqlCeParameter对象,如下所示:

select * from table where (columnname between ? and ?)
cmd.Parameters.Add(new SqlCeParameter("p1", SqlDbType.DateTime, myDate));

我想我对这个问题的回答已经很晚了,但希望它能对其他人有用。
您不能在SQLCE中声明某些变量,因为每个命令只能使用一条语句。正如ErikEJ在这篇文章中所说的。

如果可能的话,您需要将脚本重构为一个大语句!

我很高兴听到更好的解决方案。

我想我对这个问题的回答已经很晚了,但希望它对其他人有用。
您不能在SQLCE中声明某些变量,因为每个命令只能使用一条语句。正如ErikEJ在这篇文章中所说的。

如果可能的话,您需要将脚本重构为一个大语句!

我很高兴听到更好的解决方案。

SQL中不允许声明CE@alice7在阅读了更多相关内容后,SQL-CE非常有趣,但非常有限。SQL中不允许使用DECLARECE@alice7在阅读了更多相关内容后,SQL-CE非常有趣,但非常有限。实际上,我认为应该使用这样的方法:从数据库中获取所有记录(这不是一个明智的想法)。然后使用list.FindAll(Object=>(Object.DateDateTime.Now));这将给出准确的结果。对于您的建议,Nikadimac实际上我认为应该使用这样的方法:从数据库获取所有记录(这不是一个明智的想法)。然后使用list.FindAll(Object=>(Object.DateDateTime.Now));这将给出准确的结果。谢谢你的建议,尼卡迪姆