zoukankan      html  css  js  c++  java
  • SQLSERVER 表名数据库名作为变量 必须使用动态SQL(源自网络)

    动态语句基本语法:

    1 :普通SQL语句可以用exec执行

    Select * from tableName exec('select * from tableName')

    exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N

    2:字段名,表名,数据库名之类作为变量时,必须用动态

    SQL declare @fname varchar(20) set @fname = 'FiledName' Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。 exec('select ' + @fname + ' from tableName') -- 请注意 加号前后的 单引号的边上加空格

    当然将字符串改成变量的形式也可

    declare @fname varchar(20) set @fname = 'FiledName' --设置字段名

    declare @s varchar(1000) set @s = 'select ' + @fname + ' from tableName' exec(@s) -- 成功

    exec sp_executesql @s -- 此句会报错 declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000)

    set @s = 'select ' + @fname + ' from tableName' exec(@s) -- 成功 exec sp_executesql @s -- 此句正确

  • 相关阅读:
    JS笔记009
    JS笔记008
    JS笔记007
    JS笔记006
    JS笔记005
    JS笔记004
    JS笔记003
    JS笔记001
    CSS3笔记012
    expdp SYNONYM of publick and schema owner
  • 原文地址:https://www.cnblogs.com/merray/p/3483779.html
Copyright © 2011-2022 走看看