这句mssql语句错在哪里?这句:SET @syname=(select name from @dbname.sys.indexes where object_id = @syid and name like 'suoyin%')我写这句的本意是,列出 dbname这个变量(这变量是代表一个数据库名)的所有表的索引
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/25 21:40:52
这句mssql语句错在哪里?这句:SET @syname=(select name from @dbname.sys.indexes where object_id = @syid and name like 'suoyin%')我写这句的本意是,列出 dbname这个变量(这变量是代表一个数据库名)的所有表的索引
这句mssql语句错在哪里?
这句:SET @syname=(select name from @dbname.sys.indexes where object_id = @syid and name like 'suoyin%')
我写这句的本意是,列出 dbname这个变量(这变量是代表一个数据库名)的所有表的索引名称且 object_id为变量syid且名字中带有suoyin,但是这句显示 “.”附近有语法错误.
这句要怎么写才对呀?大家帮忙下,谢谢了
这句mssql语句错在哪里?这句:SET @syname=(select name from @dbname.sys.indexes where object_id = @syid and name like 'suoyin%')我写这句的本意是,列出 dbname这个变量(这变量是代表一个数据库名)的所有表的索引
@dbname 这个只是一个变量,可能只是代表了一个字符串,不能作为一个对象使用的
这种情况可以用动态sql语句来实现,通俗一点说法就是拼接sql语句
但是一旦使用拼接sql的方法,那@xxx这类变量就只能在拼接后的sql语句内使用,也就无法给@syname赋值了.这个新问题,可以采用声明#xxx类的临时表来实现.
总体来说,楼主的这个思路是对的,只是Transact-SQL不是面向对象的,所以实现起来稍显费力.