Discuz!NT官方社区

首页 » Web开发 » ASP.net技术讨论 » 大家都来关注一下啊如何动态定义一个变量代替要查询的表呢?
tangbing - 2008-5-31 9:46:00
例如
create table proc_Users
(
      @username varchar(20)
)
as
      select  * from 表(把这个表设置为一个变量) where username=@username
go
:~
tangbing - 2008-5-31 9:48:00
create table proc_Users
(
      @username varchar(20)
)
as
      select  * from 表(把这个表设置为一个变量,最好是页面可以传进来的变量) where username=@username
go
比如:
create table proc_Users
(
      @username varchar(20)
      @表
)
as
      select  * from 表(把这个表设置为一个变量,最好是页面可以传进来的变量) where username=@username
go
k46577471 - 2008-5-31 10:06:00
create table proc_Users
(
      @username varchar(20),
      @tablename varchar(50)
)
as
      declare @sqlstr varchar(500)
      set @sqlstr = 'select  * from ' + @tablename + ' where username= ''' + @username + ''''
      exec(@sqlstr)
go
tangbing - 2008-5-31 10:07:00
顶:D
非常感谢非常感谢 有例子太棒了
tangbing - 2008-6-4 15:29:00
alter proc proc_Users
@username varchar(20),
@tablename varchar(500)
as
      declare @sqlstr varchar(500)
      set @sqlstr = 'select  * from ' + @tablename + ' where id= ' + @username
      exec(@sqlstr)
go

谢谢你了 这个存储过程 ''' + @username + ''''  后面的引号真的有问题
k46577471 - 2008-6-4 17:44:00
你改成where id=那当然没问题了(数字之间的比较),你以前是用username做,你说它是不是字符串?既然是,在数据库中是不是要用单引号括起来?

现在遇到了两个单引号(一个是整体字符串的结束,另一个是字符串中嵌套字符串的开始),会有什么状况发生?自己打开查询分析器去试试,然后试试到底几个单引号符合要求!(我在这里直接书写的可能有错误,不要以为你改成where id=就没事了,以后你又想用username时自己去抓狂吧!):_onion14:
tangbing - 2008-6-6 9:01:00
:L  汗 是有很多BAD改正!改正!
weblogical - 2008-6-17 16:36:00
create table proc_Users???
:L
1
查看完整版本: 大家都来关注一下啊如何动态定义一个变量代替要查询的表呢?