declare @Commodity_Number AS char(4)
declare @Start_Date as DATETIME
declare @End_Date as DATETIME
set @Commodity_Number='1101'
set @Start_Date='2011-10-1'
set @End_Date ='2011-10-31'
execute('SELECT * FROM Fn_Commodity_Sales_Volume('+@Commodity_Number+','+@Start_Date+','+@End_Date+')')
其中Fn_Commodity_Sales_Volume(@Commodity_Number,+@Start_Date,@End_Date)是自定义函数,上述程序调试错误,请问如何解决?
declare @Start_Date as DATETIME
declare @End_Date as DATETIME
set @Commodity_Number='1101'
set @Start_Date='2011-10-1'
set @End_Date ='2011-10-31'
execute('SELECT * FROM Fn_Commodity_Sales_Volume('+@Commodity_Number+','+@Start_Date+','+@End_Date+')')
其中Fn_Commodity_Sales_Volume(@Commodity_Number,+@Start_Date,@End_Date)是自定义函数,上述程序调试错误,请问如何解决?
解决方案 »
- winform 怎样清空tablelayoutpanel控件中的内容!
- 求助在线等:关于Repeater三层嵌套,最里层如何读取外面两层的值。
- 新手提问:关于枚举(enum)类型的疑问?
- ComboBox控件与MouthCalendar控件的问题
- AJAX问题:为什么弹出的Panel中的textBox,DROPDOWNLIST不显示指定内容(为空)?
- C#什么时候使用xml注释?
- GroupBox和其中的RadioButton的选择问题。
- Web程序如何度量字符串的象素长度?
- VB的语句C#该如何写 ?
- 用delphi调用c#的dll的问题
- DataGridView能否合并某行中几个连续的Cell?
- 如何把C#中的内存流 存放到一个TXT文档中,并且可以也可以读出数据,显示在一个txt文本框中
declare @tablename varchar(50)
selecdt @tablename=dbo.Fn_Commodity_Sales_Volume(@Commodity_Number,@Start_Date,@End_Date)
execute('SELECT * FROM '+@tablname)
declare @tablename varchar(50)
declare @Start_Date as DATETIME
declare @End_Date as DATETIME
declare @Commodity_Number as char(4)
set @Commodity_Number='1101'
set @Start_Date='2011-10-1'
set @End_Date ='2011-10-31'
select @tablename=dbo.Fn_Commodity_Sales_Volume(@Commodity_Number,@Start_Date,@End_Date)
execute('SELECT * FROM '+@tablename)
提示信息如下:
对象名 'dbo.Fn_Commodity_Sales_Volume' 无效。
但执行:
select * from dbo.Fn_Commodity_Sales_Volume(@Commodity_Number,@Start_Date,@End_Date)
是正确的
declare @tablename varchar(50)
declare @Start_Date as DATETIME
declare @End_Date as DATETIME
declare @Commodity_Number as char(4)
set @Commodity_Number='1101'
set @Start_Date='2011-10-1'
set @End_Date ='2011-10-31'
select @tablename='dbo.Fn_Commodity_Sales_Volume('+@Commodity_Number+','+@Start_Date+','+@End_Date+')'
execute('SELECT * FROM '+@tablename)
提示:
从字符串转换为 datetime 时发生语法错误。
execute('SELECT * FROM Fn_Commodity_Sales_Volume('+@Commodity_Number+','+@Start_Date+','+@End_Date+')')
替换为:
SELECT * FROM Fn_Commodity_Sales_Volume(@Commodity_Number,@Start_Date,@End_Date)
就可以了。
如果你一定不肯替换,SQL字符串要确保单引号的存在,也就是这样写:
execute('SELECT * FROM Fn_Commodity_Sales_Volume('''+@Commodity_Number+''','''+@Start_Date+''','''+@End_Date+''')')