社区
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 有错误,不知道大家有没有好的方法
...全文
74
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
愉快的登山者
⊙
◢◣◢◣◢◣
MySQL
存储过程
(创建海量数据实验环境)
Re: MySQL
存储过程
(创建海量数据实验环境) ================================#
存储过程
概念
存储过程
是数据库管理中常用的技术之一,可以很方便的
做
些创建数据、统计数据、分析数据等工作,当前的主流数据库都支持
存储过程
,但不同的数据库环境语法结构有略微区别,本章给同学们介绍 MySQL 下创建
存储过程
的方法。 #
存储过程
的优点 1)
存储过程
大大“减少”了执行需要的资源和时间。 2)
存储过程
的能力大大“增强”了SQL语言的功能和灵活性。 3) 包含代码安全性,不需要将代码给用户(将代码打包)可保证数据的“安全性和完整性”。 4) 通过
存储过程
可以使没有权限的用户在“控制之下”间接地存取数据库。 5) 通过
存储过程
可以使相关的动作在一起发生,从而可以维护数据库的完整性。 6) 改进性能:减少网络流量(即:只
传
输
存储过程
的名字即可执行操作)。 # 创建海量数据实验环境 创建完成海量数据的
存储过程
,产生一千条记录和一百万或二百万条记录,操作上面没有任何区别,唯一区别是占用的时间不同,具备海量数据后,可以为系统压力测试实验,
做
好物理准备。# (本章具备完整创建海量数据的代码)-----------------------------------------------
mysql
存储过程
demo,动态拼接
表名
、
表名
作为
参数
传
递,以及通过
存储过程
自动插入批量测试数据
存储过程
很方便,就像写shell脚本一样,可以帮我们把重复的命令总结成一个脚本,不用自己每次都
做
重复的操作, sql是不可以拼接
表名
的,有时候写
存储过程
想
把
表名
作为
参数
传
进来或者在sql中动态拼接
表名
,这时候可以在
存储过程
中用concat函数动态拼接我们的sql,在拼接sql的时候拼接
表名
。用两个demo看代码理解一下。 例1:把
表名
作为
存储过程
的
参数
;例2:以及通过
存储过程
自动插入批量测试数据
关于 mysql
存储过程
传
递
表名
作为
参数
,以及从
存储过程
返回值的方法
如果在
存储过程
中,
想
根据外面
传
递的
表名
进行操作,则需要用到prepare关键字 先举例子,如果我需要在我的
存储过程
中,根据外面
传
进来的
表名
,
做
插入操作,则是以下代码 CREATE PROCEDURE `insert_mail`(IN ptable varchar(45), IN puserid int(11) unsigned, IN pdataid int(11) unsigned,
数据库
表名
作为
参数
传
递给
存储过程
的方法
通常的
存储过程
虽然也可以带
参数
,但是如果你的
存储过程
的
参数
是
表名
、字段名、数据库名之类的时候,通常的方法就行不通了! 下面是用
表名
做
参数
的
存储过程
创建: ? 1 2 3 4 5 6 7 CREATE PROCEDURE SpecialInsertProcedure @TableName varchar(50
mysql使用
存储过程
创建动态
表名
及
参数
处理
关于mysql的存储如何创建和使用:点击这里
存储过程
创建与使用有说明 直接上干货,我这里直接使用的是带有
参数
的创建 SQL如下: DELIMITER $ CREATE PROCEDURE spatialStored(IN years VARCHAR(32)) BEGIN -- 创建动态表,获取当前日期 SET @sql_create_table = CONCAT( 'CREATE TABLE IF NOT EXISTS sx_test_a', DATE_FORMAT(CURDATE(),'%Y_%c')
MS-SQL Server
34,590
社区成员
254,589
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章