SQL Server 2012 - 从动态脚本返回变量值

时间:2015-07-02 06:48:31

标签: sql-server sql-server-2012 sp-executesql

我试图运行动态脚本然后返回变量,以便我可以传入我的脚本的其余部分。我在谷歌的帮助下有几种方法,但我认为我仍然没有正确的语法,因此返回错误或空值。

有人可以告诉我哪里出错了。

例如: 返回变量@table_name的值 ASIA是数据库,它被设置为变量,它附加到从表中检索的表名,T5148是表中的id,用于将表名转换为变量。我已将此变量设置为此脚本在其他循环

的脚本时所处的位置

谢谢

declare @table_name nvarchar(50)
declare @database nvarchar(50)
declare @id nvarchar(50)
declare @sql nvarchar(max)

set @database = 'ASIA'
set @id = 'T5178'

set @sql = N'SELECT @table_name = ''@database''+table_name 
    FROM ''@database''+tables (NOLOCK)
    WHERE id = ''@id'''

exec sp_executesql @sql, N'@table_name nvarchar(50) output', @table_name   output

select @TRAN_TABLE

1 个答案:

答案 0 :(得分:2)

如果我没错,这就是你需要的:

.swatch .tooltip, .bullet li .tooltip{
  text-align:center;
  background:gray;
  color:#fff;
  bottom:80%;
  padding-top: 5px;
  padding-bottom: 5px;
  padding-left: 0px;
  padding-right: 0px;
  display:block;
  position:absolute;
  width:100px;
  left:-23px;
  margin-bottom:10px;
  /* Make it invisible by default */
  filter:alpha(opacity=0);
  -khtml-opacity: 0;
  -moz-opacity: 0;
  opacity:0;
  visibility:hidden;
  /* Animations */
  -webkit-transform: translateY(10px);
     -moz-transform: translateY(10px);
      -ms-transform: translateY(10px);
       -o-transform: translateY(10px);
          transform: translateY(10px);
  -webkit-transition: all .25s ease-out;
     -moz-transition: all .25s ease-out;
      -ms-transition: all .25s ease-out;
       -o-transition: all .25s ease-out;
          transition: all .25s ease-out;
  -webkit-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.28);
     -moz-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.28);
      -ms-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.28);
       -o-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.28);
          box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.28);
  z-index: 10000;
  -moz-box-sizing:border-box; 
  -webkit-box-sizing:border-box; 
  box-sizing:border-box;
}
.swatch .tooltip:before, .bullet li .tooltip:before {
  bottom:-20px;
  content:" ";
  display:block;
  height:20px;
  left:0;
  position:absolute;
  width:100%;
}
/* CSS triangle */
.swatch .tooltip:after, .bullet li .tooltip:after {
  border-left:solid transparent 10px;
  border-right:solid transparent 10px;
  border-top:solid gray 10px;
  bottom:10px;
  content:" ";
  height:0;
  left:50%;
  margin-left:-13px;
  position:absolute;
  width:0;

}
.swatch .swatch-element:hover .tooltip, .bullet li:hover .tooltip {
  filter:alpha(opacity=100);
  -khtml-opacity:1;
  -moz-opacity:1;
  opacity:1;
  visibility:visible;
  -webkit-transform:translateY(0px);
     -moz-transform:translateY(0px);
      -ms-transform:translateY(0px);
       -o-transform:translateY(0px);
          transform:translateY(0px);
}
.bullet li .tooltip{left:-30px;font-family:lato;font-size:15px;}

注意:更改dbo作为架构名称。