社区
MS-SQL Server
帖子详情
我想通过存储过程实现,表名做为参数传进去,不知道如何解决!急!
eagle_hb
2003-08-19 04:40:28
CREATE PROCEDURE LawLogin
@tblName varchar(50),
AS
delete from @tblName
GO
就像上面这样,可是delete from @tblName 有错误,不知道大家有没有好的方法
...全文
129
20
打赏
收藏
我想通过存储过程实现,表名做为参数传进去,不知道如何解决!急!
CREATE PROCEDURE LawLogin @tblName varchar(50), AS delete from @tblName GO 就像上面这样,可是delete from @tblName 有错误,不知道大家有没有好的方法
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
eagle_hb
2003-08-20
打赏
举报
回复
好了,真的很感谢大家,散分了。!
wuqiuzhi
2003-08-20
打赏
举报
回复
这是存储过程。
CREATE PROCEDURE test
@tblName varchar(50),
@col1 varchar(50)
AS
declare @sql varchar(200)
set @sql='select '+ @col1+' from '+@tblName +'/*※此处加上一个空格试一下※*/ where '+@col1+'=''a'''
exec(@sql)
GO
eagle_hb
2003-08-20
打赏
举报
回复
UP一下。
eagle_hb
2003-08-20
打赏
举报
回复
这是存储过程。
CREATE PROCEDURE test
@tblName varchar(50),
@col1 varchar(50)
AS
declare @sql varchar(200)
set @sql='select '+ @col1+' from '+@tblName +'where '+@col1+'=''a'''
exec(@sql)
GO
表结构如下:表名tbl,
col1
----
a
b
c
d
执行exec test 'tbl','col1'
我通过查找出来总是说:
服务器: 消息 170,级别 15,状态 1,行 2
第 2 行: '=' 附近有语法错误。
还是出错呀。。。。。。
yangvxin1
2003-08-19
打赏
举报
回复
where 前要有空格.呵呵。
CREATE PROCEDURE LawLogin
@tblName varchar(50),
@col1 varchar(50)
AS
declare @sql varchar(200)
set @sql='select '+ @col1+' from '+@tblName +' where '+@col1+'=''a'''
exec(@sql)
GO
yangvxin1
2003-08-19
打赏
举报
回复
CREATE PROCEDURE LawLogin
@tblName varchar(50),
@col1 varchar(50)
AS
declare @sql varchar(200)
set @sql='select '+ @col1+' from '+@tblName +'where '+@col1+'=''a'''
exec(@sql)
GO
xhwly
2003-08-19
打赏
举报
回复
可能是where 前面沒有空格
@sql='select '+ @col1+' from '+@tblName +' where '+ @col1+'=''a'' '
eagle_hb
2003-08-19
打赏
举报
回复
UP!!
eagle_hb
2003-08-19
打赏
举报
回复
'=' 附近有语法错误。还是不行呀
liukaiii
2003-08-19
打赏
举报
回复
@sql='select '+ @col1+' from '+@tblName +'where '+@col1+'=''a'' '
eagle_hb
2003-08-19
打赏
举报
回复
UP,解决马上散分!!!
eagle_hb
2003-08-19
打赏
举报
回复
CREATE PROCEDURE LawLogin
@tblName varchar(50),
@col1 varchar(50)
AS
delcare @sql varchar(200)
@sql='select '+ @col1+' from '+@tblName +'where '+@col1+'=a'
exec(@sql)
GO
这里=号出错了,如何解决了。。a 是字符常量。
hjb111
2003-08-19
打赏
举报
回复
CREATE PROCEDURE LawLogin
@tblName varchar(50),
AS
exec('delete from '+@tblName)
GO
eagle_hb
2003-08-19
打赏
举报
回复
谢谢大家如果像以下这样呢???
CREATE PROCEDURE LawLogin
@tblName varchar(50),
@col1
AS
select @col1 from @tblName
GO
haozhiyuan2003
2003-08-19
打赏
举报
回复
CREATE PROCEDURE LawLogin
@tblName varchar(50),
AS
exec ('delete from '+@tblName)
GO
愉快的登山者
2003-08-19
打赏
举报
回复
CREATE PROCEDURE LawLogin
@tblName varchar(50),
AS
exec ('delete from '+@tblName)
GO
愉快的登山者
⊙
◢◣◢◣◢◣
dddd8888
2003-08-19
打赏
举报
回复
CREATE PROCEDURE LawLogin
@tblName varchar(50),
AS
begin
declare @var varchar(100)
set @var = 'delete from ' + "'@tblname'"
exec(@var)
end
愉快的登山者
2003-08-19
打赏
举报
回复
CREATE PROCEDURE LawLogin
@tblName varchar(50),
AS
exec ('delete from '+@tblName)
GO
愉快的登山者
⊙
◢◣◢◣◢◣
LiaoCheng
2003-08-19
打赏
举报
回复
CREATE PROCEDURE LawLogin
@tblName varchar(50),
AS
declare @sql varchar(200)
@sql='delete from ' + @tblname
exec (@sql)
GO
愉快的登山者
2003-08-19
打赏
举报
回复
CREATE PROCEDURE LawLogin
@tblName varchar(50),
AS
exec ('delete from '+@tblName_
GO
愉快的登山者
⊙
◢◣◢◣◢◣
在sql语句中,怎样将
参数
做
为
表名
传
递到查询语句中
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/spring21st/archive/2009/01/06/3720916.aspx
mysql中
存储过程
解决
参数
作为
表名
关键字: mysql
存储过程
1.用变量
做
表名
: 简单的用set或者declare语句定义变量,然后直接作为sql的
表名
是不行的,mysql会把变量名当作
表名
。在其他的sql数据库中也是如此,mssql的
解决
方法是将整条sql语句作为变量,其中穿插变量作为
表名
,然后用sp_executesql调用该语句。 这在mysql5.0之前是不行的,5.0之后引入了一个全新的语句,可
将
表名
,字段名
做
为
参数
传
递到Sql Server中
今天为了提取出公共的fuction提高执行效率,需要
传
递表的字段作为
参数
,语法可以通过,但是查询结果不正确。将表字段
参数
换成实际的字段就可以,问题出在“如果将
表名
,字段名
做
为
参数
传
递到Sql Server中” create function backtoCount(@tablename varchar(50)) returns int as begin decl
MySQL
存储过程
接受
表名
变量作为
参数
一般情况下,MySQL的
存储过程
不接受
表名
变量作为
参数
,否则会报错,如下图所示: 上图中的报错信息显示在test数据库中,没有名为grade的表。这表示
存储过程
tname_example没有正确识别出
传
递给它的
表名
参数
。 为
解决
这个问题,我们可以在
存储过程
过程中使用prepare语句: 上图中的拼接语句concat('select * from ',table_name)值得注意,c...
mysql 表 作为
参数
_Mysql中
表名
作为
参数
的问题
近期由于程序的异常,导致数据库中创建了大量的表(约4000个),纠结的是表中的数据还都是有用的。需要合并到一个表中,首先
想
到的就是使用
存储过程
来处理,但由于
表名
都是动态生成的,需要
解决
在
存储过程
中处理以
表名
作为
参数
的问题。1、用set或者declare语句将
表名
定义为变量,在sql中的
表名
位置使用变量,经验证行不通,数据库会把变量名当作
表名
。2、要进行的操作直接用concat拼接出来,然后直接执行...
MS-SQL Server
34,876
社区成员
254,635
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章