sqlserver 存储过程 简单问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 08:36:48
create procedure [dbo].[ReportMarkShow]
(
@BusinessId bigint,
@order nvarchar(20),
@UserId nvarchar(20)
)
as
BEGIN
declare @str varchar(5000)
declare @sql varchar(5000)

if @UserId = '0'
set @str = @str + ' and 1=1 '
else
set @str = @str + ' and Send_UserId = ' + convert(nvarchar,@UserId)

if @order = 'year'
set @str = @str + ' and Post_Date between Dateadd(yy,datediff(yy,0,getdate()),0) and Dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0)) '
else if @order = 'month'
set @str = @str + ' and Post_Date between Dateadd(mm,datediff(mm,0,getdate()),0) and Dateadd(ms,-3,dateadd(mm,datediff(m,0,getdate())+1,0)) '
else if @order = 'week'
set @str = @str + ' and Post_Date between Dateadd(wk,datediff(wk,0,getdate()),-1) and Dateadd(wk,datediff(wk,0,getdate()),6)'
else if @order = 

其实是一样的
只是加了@而已。

你调试一下这个存储过程看一下,执行的东西是干什么的

呵呵,现在不愿意看写在代码里的存储过程,我觉得写着数据库中更加灵活,需要的修改,直接数据库里操作就可以了