关于动态添加存储过程的错误
2008-07-17 22:32
429 查看
有这么一个存储过程:
1ALTER PROCEDURE [dbo].[ap_BuyAndSaleAction]
2 @DataAction int,
3 @ID int = 0,
4 @RentWay nvarchar(100),
5 @City nvarchar(100),
6 @District nvarchar(100),
7 @Title nvarchar(100),
8 @Address nvarchar(1000),
9 @XiaoQu nvarchar(100),
10-- @AddTime datetime,
11 @UserID int,
12 @HouseType tinyint,
13 @Money money,
14 @Floor tinyint,
15 @TotalFloor tinyint,
16 @MainJi smallint,
17 @NianDai nvarchar(100),
18 @Validity smallint,
19 @ZhongJie tinyint,
20 @ZhuangXiu nvarchar(1000),
21 @PayMent nvarchar(500),
22 @ChaoXiang nvarchar(100),
23 @ChanQuan nvarchar(100),
24 @KaiFaShang nvarchar(100),
25 @Contact nvarchar(100),
26 @Tel varchar(20),
27 @Mobile varchar(20),
28 @Memo nvarchar(max),
29 @Memo1 nvarchar(50),
30 @Memo2 nvarchar(50),
31 @Memo3 nvarchar(50),
32 @Flag tinyint,
33 @TableNum nvarchar(20)
34AS
35if @DataAction=0
36BEGIN
37 declare @select varchar(max)
38 set @select = 'insert into [tb_'+rtrim(@TableNum)+'_BuyAndSale]
39 (
40 [RentWay],
41 [City],
42 [District],
43 [Title],
44 [Address],
45 [XiaoQu],
46 [UserID],
47 [HouseType],
48 [Money],
49 [Floor],
50 [TotalFloor],
51 [MainJi],
52 [NianDai],
53 [Validity],
54 [ZhongJie],
55 [ZhuangXiu],
56 [PayMent],
57 [ChaoXiang],
58 [ChanQuan],
59 [KaiFaShang],
60 [Contact],
61 [Tel],
62 [Mobile],
63 [Memo],
64 [Memo1],
65 [Memo2],
66 [Memo3],
67 [Flag]
68 )
69 values(
70 '''+@RentWay+''',
71 '''+@City+''',
72 '''+@District+''',
73 '''+@Title+''',
74 '''+@Address+''',
75 '''+@XiaoQu+''',
76 '+rtrim(@UserID)+',
77 '+rtrim(@HouseType)+',
78 '+rtrim(@Money)+',
79 '+rtrim(@Floor)+',
80 '+rtrim(@TotalFloor)+',
81 '+rtrim(@MainJi)+',
82 '''+ @NianDai+''',
83 '+rtrim(@Validity)+',
84 '+rtrim(@ZhongJie)+',
85 '''+@ZhuangXiu+''',
86 '''+@PayMent+''',
87 '''+@ChaoXiang+''',
88 '''+@ChanQuan+''',
89 '''+@KaiFaShang+''',
90 '''+@Contact+''',
91 '''+@Tel+''',
92 '''+@Mobile+''',
93 '''+@Memo+''',
94 '''+@Memo1+''',
95 '''+@Memo2+''',
96 '''+@Memo3+''',
97 '+rtrim(@Flag)+')'
98 EXEC(@select)
99 set @ID=scope_identity()
该存储过程实现根据传入的@TableNum值,动态的选择数据库的表。然后执行插入工作。一开始时,在如下代码中
1values(
2 '''+@RentWay+''',
3 '''+@City+''',
4 '''+@District+''',
5 '''+@Title+''',
6 '''+@Address+''',
7 '''+@XiaoQu+''',
8 '+rtrim(@UserID)+',
9 '+rtrim(@HouseType)+'
只是写成了:
values(
'+@RentWay+',
'+@City+',
'+@District+',
'+@Title+',
'+@Address+',
'+@XiaoQu+',
'+UserID+',
'+HouseType+'
在调试时出现了很多意想不到的错误。现在把这个错误贴出,用于提醒自己
1ALTER PROCEDURE [dbo].[ap_BuyAndSaleAction]
2 @DataAction int,
3 @ID int = 0,
4 @RentWay nvarchar(100),
5 @City nvarchar(100),
6 @District nvarchar(100),
7 @Title nvarchar(100),
8 @Address nvarchar(1000),
9 @XiaoQu nvarchar(100),
10-- @AddTime datetime,
11 @UserID int,
12 @HouseType tinyint,
13 @Money money,
14 @Floor tinyint,
15 @TotalFloor tinyint,
16 @MainJi smallint,
17 @NianDai nvarchar(100),
18 @Validity smallint,
19 @ZhongJie tinyint,
20 @ZhuangXiu nvarchar(1000),
21 @PayMent nvarchar(500),
22 @ChaoXiang nvarchar(100),
23 @ChanQuan nvarchar(100),
24 @KaiFaShang nvarchar(100),
25 @Contact nvarchar(100),
26 @Tel varchar(20),
27 @Mobile varchar(20),
28 @Memo nvarchar(max),
29 @Memo1 nvarchar(50),
30 @Memo2 nvarchar(50),
31 @Memo3 nvarchar(50),
32 @Flag tinyint,
33 @TableNum nvarchar(20)
34AS
35if @DataAction=0
36BEGIN
37 declare @select varchar(max)
38 set @select = 'insert into [tb_'+rtrim(@TableNum)+'_BuyAndSale]
39 (
40 [RentWay],
41 [City],
42 [District],
43 [Title],
44 [Address],
45 [XiaoQu],
46 [UserID],
47 [HouseType],
48 [Money],
49 [Floor],
50 [TotalFloor],
51 [MainJi],
52 [NianDai],
53 [Validity],
54 [ZhongJie],
55 [ZhuangXiu],
56 [PayMent],
57 [ChaoXiang],
58 [ChanQuan],
59 [KaiFaShang],
60 [Contact],
61 [Tel],
62 [Mobile],
63 [Memo],
64 [Memo1],
65 [Memo2],
66 [Memo3],
67 [Flag]
68 )
69 values(
70 '''+@RentWay+''',
71 '''+@City+''',
72 '''+@District+''',
73 '''+@Title+''',
74 '''+@Address+''',
75 '''+@XiaoQu+''',
76 '+rtrim(@UserID)+',
77 '+rtrim(@HouseType)+',
78 '+rtrim(@Money)+',
79 '+rtrim(@Floor)+',
80 '+rtrim(@TotalFloor)+',
81 '+rtrim(@MainJi)+',
82 '''+ @NianDai+''',
83 '+rtrim(@Validity)+',
84 '+rtrim(@ZhongJie)+',
85 '''+@ZhuangXiu+''',
86 '''+@PayMent+''',
87 '''+@ChaoXiang+''',
88 '''+@ChanQuan+''',
89 '''+@KaiFaShang+''',
90 '''+@Contact+''',
91 '''+@Tel+''',
92 '''+@Mobile+''',
93 '''+@Memo+''',
94 '''+@Memo1+''',
95 '''+@Memo2+''',
96 '''+@Memo3+''',
97 '+rtrim(@Flag)+')'
98 EXEC(@select)
99 set @ID=scope_identity()
该存储过程实现根据传入的@TableNum值,动态的选择数据库的表。然后执行插入工作。一开始时,在如下代码中
1values(
2 '''+@RentWay+''',
3 '''+@City+''',
4 '''+@District+''',
5 '''+@Title+''',
6 '''+@Address+''',
7 '''+@XiaoQu+''',
8 '+rtrim(@UserID)+',
9 '+rtrim(@HouseType)+'
只是写成了:
values(
'+@RentWay+',
'+@City+',
'+@District+',
'+@Title+',
'+@Address+',
'+@XiaoQu+',
'+UserID+',
'+HouseType+'
在调试时出现了很多意想不到的错误。现在把这个错误贴出,用于提醒自己
相关文章推荐
- 关于在查询分析器下调试存储过程提示Sqlle.dll错误的一种解决办法
- 关于datagrid的使用以及动态修改,以及使用存储过程的介绍
- ORACLE定时任务调用存储过程动态为表添加分区
- 存储过程中动态条件的添加 where条件 in条件中字符串参数
- c#动态创建存储过程中,提示'go' 附近有语法错误解决方案
- 关于MySQL存储过程中遇到的一个错误
- 关于用存储过程中动态创建视图的一点心得。
- c#动态创建存储过程中,提示'go' 附近有语法错误解决方案
- 存储过程 动态添加表(附加外键支持)
- 关于在存储过程中动态选择数据表名
- c#动态创建存储过程中,提示'go' 附近有语法错误解决方案
- 关于mysql存储过程创建动态表名及参数处理
- 关于vs2008中,往dataset添加用了临时表的存储过程的问题。
- 关于用存储过程动态创建视图的一点心得。
- 初步的学会用数组动态添加参数(一个添加存储过程参数的例子)
- 关于SQLServer存储过程动态拼接,模糊查询的处理
- 关于datagrid的使用以及动态修改,以及使用存储过程的介绍
- 关于mysql存储过程创建动态表名及参数处理
- 关于使用ant-design设计可动态添加FormItem的过程中遇到的问题记录。
- Sql 存储过程动态添加where条件