@ T1 char(20),T2 char(20)
AS
select * from @T1
left @T2
on @T1.id=@T2.id
RETURN
以上表名可以用变量代替吗,如果可以怎么使用?
12 个解决方案
#1
大概这样:
/*
CREATE TABLE test1
(id INT )
CREATE TABLE test2
(id INT)
INSERT INTO test1
VALUES(1)
INSERT INTO test2
VALUES(1)
*/
alter Procedure [dbo].[pro1]
@T1 varchar(20),
@T2 varchar(20)
AS
DECLARE @sql varchar(max)
SET @sql='select * from '+ QUOTENAME(@T1) +' left join '+ QUOTENAME(@T2) +' on '+QUOTENAME(@T1)+'.id='+QUOTENAME(@T2) +'.id'
EXEC( @sql)
go
EXEC pro1 'test1','test2'
/*
id id
----------- -----------
1 1
*/
#2
使用动态语句
CREATE PROCEDURE [dbo].[pro1]
@ T1 CHAR(20),T2 CHAR(20)
AS
EXECUTE('select * from '+@T1+
'left join '+@T2+
'on '+@T1+'.id='+@T2+'.id');
END
#3
存储过程是在sql2000里建立,使用'+@变量+'做表名,不好用
#4
不好用???
#5
USE [wed]
GO
/****** 对象: StoredProcedure [dbo].[Duty_pro_total_times] 脚本日期: 07/15/2014 13:46:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- 创建存储过程
ALTER Proc [dbo].[Duty_pro_total_times]
-- 存储过程参数
@Tb_duty_kind varchar(50),@Tp_table varchar(50),@from_datetime datetime,@to_datetime datetime,@str_days char(20)
AS
-- 存储过程语句体
DECLARE @sql varchar(100)
Set @sql=(select Isnull(sum(G1.s_day),0),Isnull(G2.duty_10days,0) ,sum(G3.man_number),
Isnull(sum(G5.s_day1),0),Isnull(sum(G6.s_day2),0) from
(select dep_serial,convert(nvarchar(50),dep_name) as dep_name,H.s_day from dt_dep D
Left Join
(select S.m_id, sum(S.perday) as s_day from
V_s as S
where (S.j_mark='1' or S.j_mark='2') and
S.RQ>=@from_datetime and RQ<=@to_datetime group by S.m_id ) H
on D.dep_serial=H.m_id) G1
Left Join
(select aa.teams,count(duty_kind) as duty_10days from '+@Tb_duty_kind+' aa
inner join '+@Tp_table+' bb on aa.duty_date=bb.RQ where aa.duty_kind='' and
bb.RQ>=@from_datetime and bb.RQ<=@to_datetime group by aa.teams) G2
on G1.dep_serial=G2.teams
left join
(select m_id,man_number from Tb_dep_number_month
where month=@str_days) G3 on G1.dep_serial=G3.m_id
left join
(select dep_serial,convert(nvarchar(50),dep_name) as dep_name,H.s_day1 from dt_dep D
Left Join
(select S.m_id, sum(S.perday) as s_day1 from
V_s as S
where S.j_mark='1' and S.RQ>=@from_datetime and RQ<=@to_datetime group by S.m_id ) H
on D.dep_serial=H.m_id) G5
on G1.dep_serial=G5.dep_serial
left join
(select dep_serial,convert(nvarchar(50),dep_name) as dep_name,H.s_day2 from dt_dep D
Left Join
(select S.m_id, sum(S.perday) as s_day2 from
V_s as S
where S.j_mark='2' and S.RQ>=@from_datetime and RQ<=@to_datetime group by S.m_id ) H
on D.dep_serial=H.m_id) G6
on G1.dep_serial=G6.dep_serial
where G1.dep_serial<>'8'
group by G2.duty_10days)
Exec(@sql)
return
-- 执行
#6
消息 170,级别 15,状态 1,过程 Duty_pro_total_times,第 18 行
第 18 行: '+@Tb_duty_kind+' 附近有语法错误。
消息 170,级别 15,状态 1,过程 Duty_pro_total_times,第 24 行
第 24 行: 'G3' 附近有语法错误。
消息 170,级别 15,状态 1,过程 Duty_pro_total_times,第 31 行
第 31 行: 'G5' 附近有语法错误。
消息 170,级别 15,状态 1,过程 Duty_pro_total_times,第 39 行
第 39 行: 'G6' 附近有语法错误。
第 18 行: '+@Tb_duty_kind+' 附近有语法错误。
消息 170,级别 15,状态 1,过程 Duty_pro_total_times,第 24 行
第 24 行: 'G3' 附近有语法错误。
消息 170,级别 15,状态 1,过程 Duty_pro_total_times,第 31 行
第 31 行: 'G5' 附近有语法错误。
消息 170,级别 15,状态 1,过程 Duty_pro_total_times,第 39 行
第 39 行: 'G6' 附近有语法错误。
#7
Use dynamic SQL
ALTER PROC [dbo].[Duty_pro_total_times]
-- 存储过程参数
@Tb_duty_kind VARCHAR(50) ,
@Tp_table VARCHAR(50) ,
@from_datetime DATETIME ,
@to_datetime DATETIME ,
@str_days CHAR(20)
AS -- 存储过程语句体
DECLARE @sql VARCHAR(MAX)
SET @sql = '(select Isnull(sum(G1.s_day),0),Isnull(G2.duty_10days,0) ,sum(G3.man_number),
Isnull(sum(G5.s_day1),0),Isnull(sum(G6.s_day2),0) from
(select dep_serial,convert(nvarchar(50),dep_name) as dep_name,H.s_day from dt_dep D
Left Join
(select S.m_id, sum(S.perday) as s_day from
V_s as S
where (S.j_mark=''1'' or S.j_mark=''2'') and
S.RQ>=@from_datetime and RQ<=@to_datetime group by S.m_id ) H
on D.dep_serial=H.m_id) G1
Left Join
(select aa.teams,count(duty_kind) as duty_10days from ' + @Tb_duty_kind
+ ' aa
inner join ' + @Tp_table
+ ' bb on aa.duty_date=bb.RQ where aa.duty_kind='' and
bb.RQ>=@from_datetime and bb.RQ<=@to_datetime group by aa.teams) G2
on G1.dep_serial=G2.teams
left join
(select m_id,man_number from Tb_dep_number_month
where month=@str_days) G3 on G1.dep_serial=G3.m_id
left join
(select dep_serial,convert(nvarchar(50),dep_name) as dep_name,H.s_day1 from dt_dep D
Left Join
(select S.m_id, sum(S.perday) as s_day1 from
V_s as S
where S.j_mark=''1'' and S.RQ>=@from_datetime and RQ<=@to_datetime group by S.m_id ) H
on D.dep_serial=H.m_id) G5
on G1.dep_serial=G5.dep_serial
left join
(select dep_serial,convert(nvarchar(50),dep_name) as dep_name,H.s_day2 from dt_dep D
Left Join
(select S.m_id, sum(S.perday) as s_day2 from
V_s as S
where S.j_mark=''2'' and S.RQ>=@from_datetime and RQ<=@to_datetime group by S.m_id ) H
on D.dep_serial=H.m_id) G6
on G1.dep_serial=G6.dep_serial
where G1.dep_serial<>''8''
group by G2.duty_10days)'
EXEC(@sql)
#8
消息 170,级别 15,状态 1,过程 Duty_pro_total_times,第 7 行
第 7 行: 'Max' 附近有语法错误。
消息 170,级别 15,状态 1,过程 Duty_pro_total_times,第 30 行
第 30 行: '1' 附近有语法错误。
消息 137,级别 15,状态 2,过程 Duty_pro_total_times,第 43 行
必须声明变量 '@sql'。
第 7 行: 'Max' 附近有语法错误。
消息 170,级别 15,状态 1,过程 Duty_pro_total_times,第 30 行
第 30 行: '1' 附近有语法错误。
消息 137,级别 15,状态 2,过程 Duty_pro_total_times,第 43 行
必须声明变量 '@sql'。
#9
declare @name
declare @str
set @name=table
set @str =('select * from @name")
exec(@str)
declare @str
set @name=table
set @str =('select * from @name")
exec(@str)
#10
这个能编译通过,最后面的EXEC是我的测试例子而已,你可以删掉。看来你都没接触过动态SQL 啊?再改几次我都快吐血了。。。
alter PROC [dbo].[Duty_pro_total_times]
-- 存储过程参数
@Tb_duty_kind VARCHAR(50) ,
@Tp_table VARCHAR(50) ,
@from_datetime DATETIME ,
@to_datetime DATETIME ,
@str_days CHAR(20)
AS -- 存储过程语句体
DECLARE @sql VARCHAR(MAX)
SET @sql = 'select Isnull(sum(G1.s_day),0),Isnull(G2.duty_10days,0) ,sum(G3.man_number),
Isnull(sum(G5.s_day1),0),Isnull(sum(G6.s_day2),0) from
(select dep_serial,convert(nvarchar(50),dep_name) as dep_name,H.s_day from dt_dep D
Left Join
(select S.m_id, sum(S.perday) as s_day from
V_s as S
where (S.j_mark=''1'' or S.j_mark=''2'') and
S.RQ>='''+CAST(@from_datetime as varchar(30))+''' and RQ<='''+CAST(@to_datetime as varchar(30))+''' group by S.m_id ) H
on D.dep_serial=H.m_id) G1
Left Join
(select aa.teams,count(duty_kind) as duty_10days from ' + QUOTENAME(@Tb_duty_kind)
+ ' aa
inner join ' + QUOTENAME(@Tp_table)
+ ' bb on aa.duty_date=bb.RQ where aa.duty_kind='''' and
bb.RQ>='''+CAST(@from_datetime as varchar(30))+''' and bb.RQ<='''+CAST(@to_datetime as varchar(30))+''' group by aa.teams) G2
on G1.dep_serial=G2.teams
left join
(select m_id,man_number from Tb_dep_number_month
where month='''+CAST(@str_days as varchar(30))+''') G3 on G1.dep_serial=G3.m_id
left join
(select dep_serial,convert(nvarchar(50),dep_name) as dep_name,H.s_day1 from dt_dep D
Left Join
(select S.m_id, sum(S.perday) as s_day1 from
V_s as S
where S.j_mark=''1'' and S.RQ>='''+CAST(@from_datetime as varchar(30))+''' and RQ<='''+CAST(@to_datetime as varchar(30))+''' group by S.m_id ) H
on D.dep_serial=H.m_id) G5
on G1.dep_serial=G5.dep_serial
left join
(select dep_serial,convert(nvarchar(50),dep_name) as dep_name,H.s_day2 from dt_dep D
Left Join
(select S.m_id, sum(S.perday) as s_day2 from
V_s as S
where S.j_mark=''2'' and S.RQ>='''+CAST(@from_datetime as varchar(30))+''' and RQ<='''+CAST(@to_datetime as varchar(30))+''' group by S.m_id ) H
on D.dep_serial=H.m_id) G6
on G1.dep_serial=G6.dep_serial
where G1.dep_serial<>''8''
group by G2.duty_10days'
EXEC (@sql)
go
EXEC [Duty_pro_total_times] '1','a','2014-01-01','2014-01-02','1'
#11
是这样的,我在本机上连接其他电脑上的SQL
连接sql2005并在查询里建立存储过程,上面的语句能执行,没错误
但是..连接sql2000后,并在查询里建立存储过程,上面的语句就出现如下错误
第 10 行: 'MAX' 附近有语法错误。
消息 137,级别 15,状态 1,过程 Duty_pro_total_times,第 47 行
必须声明变量 '@sql'。
消息 137,级别 15,状态 2,过程 Duty_pro_total_times,第 47 行
必须声明变量 '@sql'。
连接sql2005并在查询里建立存储过程,上面的语句能执行,没错误
但是..连接sql2000后,并在查询里建立存储过程,上面的语句就出现如下错误
第 10 行: 'MAX' 附近有语法错误。
消息 137,级别 15,状态 1,过程 Duty_pro_total_times,第 47 行
必须声明变量 '@sql'。
消息 137,级别 15,状态 2,过程 Duty_pro_total_times,第 47 行
必须声明变量 '@sql'。
#12
alter PROC [dbo].[Duty_pro_total_times]
-- 存储过程参数
@Tb_duty_kind VARCHAR(50) ,
@Tp_table VARCHAR(50) ,
@from_datetime DATETIME ,
@to_datetime DATETIME ,
@str_days CHAR(20)
AS -- 存储过程语句体
DECLARE @sql VARCHAR(MAX)2000只有varchar(8000),把max改成8000
-- 存储过程参数
@Tb_duty_kind VARCHAR(50) ,
@Tp_table VARCHAR(50) ,
@from_datetime DATETIME ,
@to_datetime DATETIME ,
@str_days CHAR(20)
AS -- 存储过程语句体
DECLARE @sql VARCHAR(MAX)2000只有varchar(8000),把max改成8000
#1
大概这样:
/*
CREATE TABLE test1
(id INT )
CREATE TABLE test2
(id INT)
INSERT INTO test1
VALUES(1)
INSERT INTO test2
VALUES(1)
*/
alter Procedure [dbo].[pro1]
@T1 varchar(20),
@T2 varchar(20)
AS
DECLARE @sql varchar(max)
SET @sql='select * from '+ QUOTENAME(@T1) +' left join '+ QUOTENAME(@T2) +' on '+QUOTENAME(@T1)+'.id='+QUOTENAME(@T2) +'.id'
EXEC( @sql)
go
EXEC pro1 'test1','test2'
/*
id id
----------- -----------
1 1
*/
#2
使用动态语句
CREATE PROCEDURE [dbo].[pro1]
@ T1 CHAR(20),T2 CHAR(20)
AS
EXECUTE('select * from '+@T1+
'left join '+@T2+
'on '+@T1+'.id='+@T2+'.id');
END
#3
存储过程是在sql2000里建立,使用'+@变量+'做表名,不好用
#4
不好用???
#5
USE [wed]
GO
/****** 对象: StoredProcedure [dbo].[Duty_pro_total_times] 脚本日期: 07/15/2014 13:46:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- 创建存储过程
ALTER Proc [dbo].[Duty_pro_total_times]
-- 存储过程参数
@Tb_duty_kind varchar(50),@Tp_table varchar(50),@from_datetime datetime,@to_datetime datetime,@str_days char(20)
AS
-- 存储过程语句体
DECLARE @sql varchar(100)
Set @sql=(select Isnull(sum(G1.s_day),0),Isnull(G2.duty_10days,0) ,sum(G3.man_number),
Isnull(sum(G5.s_day1),0),Isnull(sum(G6.s_day2),0) from
(select dep_serial,convert(nvarchar(50),dep_name) as dep_name,H.s_day from dt_dep D
Left Join
(select S.m_id, sum(S.perday) as s_day from
V_s as S
where (S.j_mark='1' or S.j_mark='2') and
S.RQ>=@from_datetime and RQ<=@to_datetime group by S.m_id ) H
on D.dep_serial=H.m_id) G1
Left Join
(select aa.teams,count(duty_kind) as duty_10days from '+@Tb_duty_kind+' aa
inner join '+@Tp_table+' bb on aa.duty_date=bb.RQ where aa.duty_kind='' and
bb.RQ>=@from_datetime and bb.RQ<=@to_datetime group by aa.teams) G2
on G1.dep_serial=G2.teams
left join
(select m_id,man_number from Tb_dep_number_month
where month=@str_days) G3 on G1.dep_serial=G3.m_id
left join
(select dep_serial,convert(nvarchar(50),dep_name) as dep_name,H.s_day1 from dt_dep D
Left Join
(select S.m_id, sum(S.perday) as s_day1 from
V_s as S
where S.j_mark='1' and S.RQ>=@from_datetime and RQ<=@to_datetime group by S.m_id ) H
on D.dep_serial=H.m_id) G5
on G1.dep_serial=G5.dep_serial
left join
(select dep_serial,convert(nvarchar(50),dep_name) as dep_name,H.s_day2 from dt_dep D
Left Join
(select S.m_id, sum(S.perday) as s_day2 from
V_s as S
where S.j_mark='2' and S.RQ>=@from_datetime and RQ<=@to_datetime group by S.m_id ) H
on D.dep_serial=H.m_id) G6
on G1.dep_serial=G6.dep_serial
where G1.dep_serial<>'8'
group by G2.duty_10days)
Exec(@sql)
return
-- 执行
#6
消息 170,级别 15,状态 1,过程 Duty_pro_total_times,第 18 行
第 18 行: '+@Tb_duty_kind+' 附近有语法错误。
消息 170,级别 15,状态 1,过程 Duty_pro_total_times,第 24 行
第 24 行: 'G3' 附近有语法错误。
消息 170,级别 15,状态 1,过程 Duty_pro_total_times,第 31 行
第 31 行: 'G5' 附近有语法错误。
消息 170,级别 15,状态 1,过程 Duty_pro_total_times,第 39 行
第 39 行: 'G6' 附近有语法错误。
第 18 行: '+@Tb_duty_kind+' 附近有语法错误。
消息 170,级别 15,状态 1,过程 Duty_pro_total_times,第 24 行
第 24 行: 'G3' 附近有语法错误。
消息 170,级别 15,状态 1,过程 Duty_pro_total_times,第 31 行
第 31 行: 'G5' 附近有语法错误。
消息 170,级别 15,状态 1,过程 Duty_pro_total_times,第 39 行
第 39 行: 'G6' 附近有语法错误。
#7
Use dynamic SQL
ALTER PROC [dbo].[Duty_pro_total_times]
-- 存储过程参数
@Tb_duty_kind VARCHAR(50) ,
@Tp_table VARCHAR(50) ,
@from_datetime DATETIME ,
@to_datetime DATETIME ,
@str_days CHAR(20)
AS -- 存储过程语句体
DECLARE @sql VARCHAR(MAX)
SET @sql = '(select Isnull(sum(G1.s_day),0),Isnull(G2.duty_10days,0) ,sum(G3.man_number),
Isnull(sum(G5.s_day1),0),Isnull(sum(G6.s_day2),0) from
(select dep_serial,convert(nvarchar(50),dep_name) as dep_name,H.s_day from dt_dep D
Left Join
(select S.m_id, sum(S.perday) as s_day from
V_s as S
where (S.j_mark=''1'' or S.j_mark=''2'') and
S.RQ>=@from_datetime and RQ<=@to_datetime group by S.m_id ) H
on D.dep_serial=H.m_id) G1
Left Join
(select aa.teams,count(duty_kind) as duty_10days from ' + @Tb_duty_kind
+ ' aa
inner join ' + @Tp_table
+ ' bb on aa.duty_date=bb.RQ where aa.duty_kind='' and
bb.RQ>=@from_datetime and bb.RQ<=@to_datetime group by aa.teams) G2
on G1.dep_serial=G2.teams
left join
(select m_id,man_number from Tb_dep_number_month
where month=@str_days) G3 on G1.dep_serial=G3.m_id
left join
(select dep_serial,convert(nvarchar(50),dep_name) as dep_name,H.s_day1 from dt_dep D
Left Join
(select S.m_id, sum(S.perday) as s_day1 from
V_s as S
where S.j_mark=''1'' and S.RQ>=@from_datetime and RQ<=@to_datetime group by S.m_id ) H
on D.dep_serial=H.m_id) G5
on G1.dep_serial=G5.dep_serial
left join
(select dep_serial,convert(nvarchar(50),dep_name) as dep_name,H.s_day2 from dt_dep D
Left Join
(select S.m_id, sum(S.perday) as s_day2 from
V_s as S
where S.j_mark=''2'' and S.RQ>=@from_datetime and RQ<=@to_datetime group by S.m_id ) H
on D.dep_serial=H.m_id) G6
on G1.dep_serial=G6.dep_serial
where G1.dep_serial<>''8''
group by G2.duty_10days)'
EXEC(@sql)
#8
消息 170,级别 15,状态 1,过程 Duty_pro_total_times,第 7 行
第 7 行: 'Max' 附近有语法错误。
消息 170,级别 15,状态 1,过程 Duty_pro_total_times,第 30 行
第 30 行: '1' 附近有语法错误。
消息 137,级别 15,状态 2,过程 Duty_pro_total_times,第 43 行
必须声明变量 '@sql'。
第 7 行: 'Max' 附近有语法错误。
消息 170,级别 15,状态 1,过程 Duty_pro_total_times,第 30 行
第 30 行: '1' 附近有语法错误。
消息 137,级别 15,状态 2,过程 Duty_pro_total_times,第 43 行
必须声明变量 '@sql'。
#9
declare @name
declare @str
set @name=table
set @str =('select * from @name")
exec(@str)
declare @str
set @name=table
set @str =('select * from @name")
exec(@str)
#10
这个能编译通过,最后面的EXEC是我的测试例子而已,你可以删掉。看来你都没接触过动态SQL 啊?再改几次我都快吐血了。。。
alter PROC [dbo].[Duty_pro_total_times]
-- 存储过程参数
@Tb_duty_kind VARCHAR(50) ,
@Tp_table VARCHAR(50) ,
@from_datetime DATETIME ,
@to_datetime DATETIME ,
@str_days CHAR(20)
AS -- 存储过程语句体
DECLARE @sql VARCHAR(MAX)
SET @sql = 'select Isnull(sum(G1.s_day),0),Isnull(G2.duty_10days,0) ,sum(G3.man_number),
Isnull(sum(G5.s_day1),0),Isnull(sum(G6.s_day2),0) from
(select dep_serial,convert(nvarchar(50),dep_name) as dep_name,H.s_day from dt_dep D
Left Join
(select S.m_id, sum(S.perday) as s_day from
V_s as S
where (S.j_mark=''1'' or S.j_mark=''2'') and
S.RQ>='''+CAST(@from_datetime as varchar(30))+''' and RQ<='''+CAST(@to_datetime as varchar(30))+''' group by S.m_id ) H
on D.dep_serial=H.m_id) G1
Left Join
(select aa.teams,count(duty_kind) as duty_10days from ' + QUOTENAME(@Tb_duty_kind)
+ ' aa
inner join ' + QUOTENAME(@Tp_table)
+ ' bb on aa.duty_date=bb.RQ where aa.duty_kind='''' and
bb.RQ>='''+CAST(@from_datetime as varchar(30))+''' and bb.RQ<='''+CAST(@to_datetime as varchar(30))+''' group by aa.teams) G2
on G1.dep_serial=G2.teams
left join
(select m_id,man_number from Tb_dep_number_month
where month='''+CAST(@str_days as varchar(30))+''') G3 on G1.dep_serial=G3.m_id
left join
(select dep_serial,convert(nvarchar(50),dep_name) as dep_name,H.s_day1 from dt_dep D
Left Join
(select S.m_id, sum(S.perday) as s_day1 from
V_s as S
where S.j_mark=''1'' and S.RQ>='''+CAST(@from_datetime as varchar(30))+''' and RQ<='''+CAST(@to_datetime as varchar(30))+''' group by S.m_id ) H
on D.dep_serial=H.m_id) G5
on G1.dep_serial=G5.dep_serial
left join
(select dep_serial,convert(nvarchar(50),dep_name) as dep_name,H.s_day2 from dt_dep D
Left Join
(select S.m_id, sum(S.perday) as s_day2 from
V_s as S
where S.j_mark=''2'' and S.RQ>='''+CAST(@from_datetime as varchar(30))+''' and RQ<='''+CAST(@to_datetime as varchar(30))+''' group by S.m_id ) H
on D.dep_serial=H.m_id) G6
on G1.dep_serial=G6.dep_serial
where G1.dep_serial<>''8''
group by G2.duty_10days'
EXEC (@sql)
go
EXEC [Duty_pro_total_times] '1','a','2014-01-01','2014-01-02','1'
#11
是这样的,我在本机上连接其他电脑上的SQL
连接sql2005并在查询里建立存储过程,上面的语句能执行,没错误
但是..连接sql2000后,并在查询里建立存储过程,上面的语句就出现如下错误
第 10 行: 'MAX' 附近有语法错误。
消息 137,级别 15,状态 1,过程 Duty_pro_total_times,第 47 行
必须声明变量 '@sql'。
消息 137,级别 15,状态 2,过程 Duty_pro_total_times,第 47 行
必须声明变量 '@sql'。
连接sql2005并在查询里建立存储过程,上面的语句能执行,没错误
但是..连接sql2000后,并在查询里建立存储过程,上面的语句就出现如下错误
第 10 行: 'MAX' 附近有语法错误。
消息 137,级别 15,状态 1,过程 Duty_pro_total_times,第 47 行
必须声明变量 '@sql'。
消息 137,级别 15,状态 2,过程 Duty_pro_total_times,第 47 行
必须声明变量 '@sql'。
#12
alter PROC [dbo].[Duty_pro_total_times]
-- 存储过程参数
@Tb_duty_kind VARCHAR(50) ,
@Tp_table VARCHAR(50) ,
@from_datetime DATETIME ,
@to_datetime DATETIME ,
@str_days CHAR(20)
AS -- 存储过程语句体
DECLARE @sql VARCHAR(MAX)2000只有varchar(8000),把max改成8000
-- 存储过程参数
@Tb_duty_kind VARCHAR(50) ,
@Tp_table VARCHAR(50) ,
@from_datetime DATETIME ,
@to_datetime DATETIME ,
@str_days CHAR(20)
AS -- 存储过程语句体
DECLARE @sql VARCHAR(MAX)2000只有varchar(8000),把max改成8000