sql server 用变量定义表名,能够查询

alter procedure proc_select
@table varchar(50)
as
declare @sql varchar(max)
begin
set @sql='select * from'+@table
@sql
print @sql
end
这个上面@sql只能够显示select * from @table ,我想叫它查询某个表,不知道该怎么做?

sql server 中查询使用变量定义表名,需要配合exec()来实现。


如图中例子,使用 @char_table 接收 表名变量


SQL中:declare @ 定义变量,set 给变量赋值。exec()来执行动态SQL语句

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-18
set @sql='select * from'+@table
print @sql
exec @sql --执行SQL

追问

这个@sql不是存储过程,没法执行啊!

追答

可以的,exec可以用来执行语句的

上面写错了,要这样

set @sql='select * from '+@table
print @sql
exec(@sql)

本回答被提问者采纳

sql server 用变量定义表名,能够查询
sql server 中查询使用变量定义表名,需要配合exec()来实现。如图中例子,使用 @char_table 接收 表名变量 SQL中:declare @ 定义变量,set 给变量赋值。exec()来执行动态SQL语句

SQLSERVER如何在数据库里根据某个字段,查出该表名字
SQLSERVER中 根据字段名称查找所在表格名称的方法:一、语句的思路:SQLSERVER的两个系统表:1、保存表格字段属性的:syscolumns 2、保存数据库对象属性的:sysobjects ,它们都包含对象ID字段,所以可以使用两个表格的ID字段,作为表格联合检索依据来进行检索。二、相关系统表格简介:1、syscolumns :每个表和...

SQL在查询结果中查询
在SQL Server中,可以使用表变量来存储查询的结果集,以便后续的在此结果集上进行新的查询。(当然,临时表也是一种方法)。先定义表变量(在变量名之后用table关键字说明定义表变量,然后跟表的具体字段定义):declare @tb table (ID integer, InTime datetime, ...)然后,将查询到的数据插入表变量:inse...

弱弱地问:正在零基础摸索sql server的while循环。怎样使用变量定义数 ...
用变量定义数据表名是可以的。但是在T-SQL中表名无法直接用变量,要解决此问题,我们可以用存储过程:sp_executesql,该存储过程只接一个参数,即 SQL 语句字符串。如:exec sp_executesql @statement,注意:@statement 参数只能是 ntext\/nchar\/nvarchar 类型。所以按照你的想法, 应该如下:declare @i...

sql server怎么查询表的第1列 不知道列名
--定义变量 DECLARE @query varchar(max),tableName varchar(max),columnName varchar(max)--设置表名 SET@tableName = 'Employee'--获取指定表名的第一列的名称 SELECTTOP 1 @columnName = c.name FROMsys.all_columns c JOIN sys.all_objects o ONc.object_id = o.object_id WHEREo.name ...

SQL Server如何将变量作为别名?
declare @a varchar(10)set @a='别名'exec('select co1 '+@a +' from table1')大致就是这样做

sql server2008怎么实现查询某个数据库中所有的表名
-- 名名称和字段名 SELECT (case when a.colorder=1 then d.name else '' end) 表名,a.colorder 字段序号,a.name 字段名,(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) 标识,(case when (SELECT count(*) FROM sysobjects WHERE (name in (SELECT ...

如何查询postgreSQL 里面某个数据库中所有用户定义的数据表的名字
用sql获取数据库中所有的表名的方法:1、oracle下:select table_name from all_tables;2、MySQL下:select table_name from information_schema.tables where table_schema='csdb' and table_type='base table';3、sql server下:select name from sys.tables go ...

SQL Server中可否进行多库中的表查询
在SQL Server中,确实可以进行多库中的表查询。这主要依赖于数据库是否支持分布式查询的SQL语法。例如,使用以下格式进行查询:SELECT * FROM 库名.dbo.表名;这里的“数据库.拥有者.表名”是一个关键表达式,用于指定要查询的表所在的数据库和表名。在SQL Server中,此功能是内置的,无需特别配置。尽...

sql server中如何在全库中查询内容?
可以用存储过程来查询,但是如果表太大,会很影响速度和占用系统资源。如,要在数据库中查询字段内容为“张三”的表及字段,可用如下代码:declare @cloumns varchar(40)declare @tablename varchar(40)declare @str varchar(40)declare @counts intdeclare @sql nvarchar(2000)declare MyCursor Cursor ...

相似回答