sql server中select语句中的表名变量

用户名

我想在select语句中使用tablename变量,但是它给出了错误

-必须声明表变量“ @table”

alter PROCEDURE testTblName
(
@id int,
@name varchar(50)
)
AS
BEGIN
   declare @table varchar(50)
   declare @add varchar(150)
   set @table = 'DBTest..testMaster'
   select @add = address from @table where id=@id and name=@name
END

这是我的代码的快照

拉杜·波伦布(Radu Porumb)

您不能为表名使用变量。执行此操作时,select address from @tableSQL期望@table是表类型的变量,而不是标量。

您正在寻找做这样的事情:

ALTER PROCEDURE testTblName
(
    @id INT,
    @name VARCHAR(50)
)
AS
BEGIN
    DECLARE @table VARCHAR(50),
            @add VARCHAR(150),
            @params VARCHAR(200),
            @sql VARCHAR(200);

    SET @params = '@add VARCHAR(50) OUTPUT';

    SET @table = 'DBTest..testMaster'

    SET @sql = 'SELECT @add = address FROM ' + @table + ' WHERE id=' + @id + ' AND name=' + @name

    EXEC sp_executesql @sql, @params, @add OUTPUT;

    ...
    ...
END

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Java拆分在SQL语句中获取表名

在SQL Server的select语句中将变量与TOP一起使用,而无需使其动态

SQL Server:在Select语句中替换阿拉伯字符

如何在Oracle PL-SQL中的select语句中使用变量

SQL语句从表中获取,语句中有变量,无法执行

SQL Server中的Case语句中的条件

在CTE SQL的select语句中更新局部变量

SQL Server存在无法在select语句中工作

如何在case语句中使用优先值或在函数中的sql语句中的case语句中设置变量

SQL Server中CASE语句中的IN条件

PHP语句中的SQL变量

更新SQL Select语句中每一行的变量

如何获取在SQL Server SELECT语句中从右到左排列的数字

SQL Server合并语句中的错误:列前缀“已更新”与查询中使用的表名或别名不匹配

SQL Server-从Select语句中的前几行获取数据

SQL Server:在SELECT语句中拆分字符串

SQL在select语句中合并两个表

SELECT语句中的sql concat

IndexOutOfRangeException:SQL Server select语句中的field_name

SAS:在“ proc sql”语句中预定义表名

在SQL语句中包含变量的问题-在Python 3.4中

SQL Server-表变量vs临时表以及带有并集的select语句

如何在sql create语句中使用变量名作为表名

Sql Server 使用 CONTAINS 函数作为 select 语句中的列

如何在 SQL Server SELECT 语句中获取以前的值

如何从 SQL Server 中的 select 语句设置变量

SQL Server:在 select 语句中循环以获取 n 个列

select 子句中的 SQL Server case 语句

如何在 SQL Server 连接语句的右选择语句中的 where 子句中使用左表中的列