---------------------------------------------------------------- -- Author :DBA_Huangzj(發糞塗牆) -- Date :2013-08-14 10:10:02 -- Version: -- Microsoft SQL Server 2014 (CTP1) - 11.0.9120.5 (X64) -- Jun 10 2013 20:09:10 -- Copyright (c) Microsoft Corporation -- Enterprise Evaluation Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor) -- ---------------------------------------------------------------- --> 测试数据:[CraneTrends] if object_id('[CraneTrends]') is not null drop table [CraneTrends] go create table [CraneTrends]([CraneType] varchar(3),[tablename] varchar(14)) insert [CraneTrends] select '002','Craneopration' union all select '003','Craneopration3' union all select '001','Craneopration1' --------------开始查询-------------------------- DECLARE @sql NVARCHAR(MAX),@CraneType VARCHAR(10) ='002' SELECT @sql= 'select * from '+tablename from cranetrends where cranetype=@CraneTypeEXEC( @sql)
---------------------------------------------------------------- -- Author :DBA_Huangzj(發糞塗牆) -- Date :2013-08-14 10:10:02 -- Version: -- Microsoft SQL Server 2014 (CTP1) - 11.0.9120.5 (X64) -- Jun 10 2013 20:09:10 -- Copyright (c) Microsoft Corporation -- Enterprise Evaluation Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor) -- ---------------------------------------------------------------- --> 测试数据:[CraneTrends] if object_id('[CraneTrends]') is not null drop table [CraneTrends] go create table [CraneTrends]([CraneType] varchar(3),[tablename] varchar(14)) insert [CraneTrends] select '002','Craneopration' union all select '003','Craneopration3' union all select '001','Craneopration1' --------------开始查询-------------------------- DECLARE @sql NVARCHAR(MAX),@CraneType VARCHAR(10) ='002' SELECT @sql= 'select * from '+tablename from cranetrends where cranetype=@CraneTypeEXEC( @sql)
select * from tb ,你造了啥数据呀 TableName 别都是 CraneOperation3
谢谢版主啊,不过我根据你之前给我的那个sql语句,琢磨出了个简单的方法declare @sql nvarchar(max),@cranetype nvarchar(max) set @sql='' set @cranetype='001' select @sql=@sql+'select * from ' +tablename from cranetrends where cranetype=@cranetype select @sql exec(@sql)再次谢谢版主!
from cranetrends
where cranetype=你传入的参数
INSERT TB SELECT '003','CraneOperation3'DECLARE @sql NVARCHAR(MAX),@CraneType VARCHAR(10)
SET @CraneType = '003'SET @sql =
(
SELECT N'SELECT * FROM '+QUOTENAME(TableName)
FROM TB
where CraneType = @CraneType
)
--PRINT @sql
EXEC(@sql)
这个执行的结果是一条sql语句啊,select * from CraneOperation1,我想要的是CraneOperation1表的内容
举个例子呗,我sql很差,还有就是我是用三层架构的,你说的动态sql不会是存储过程吧
举个例子呗,我sql很差,还有就是我是用三层架构的,你说的动态sql不会是存储过程吧2楼已经写了,我就不累赘了
举个例子呗,我sql很差,还有就是我是用三层架构的,你说的动态sql不会是存储过程吧2楼已经写了,我就不累赘了
版主您就给写个呗,多一种方法就多一种思考,让后来人也好跟您学习学习
-- Author :DBA_Huangzj(發糞塗牆)
-- Date :2013-08-14 10:10:02
-- Version:
-- Microsoft SQL Server 2014 (CTP1) - 11.0.9120.5 (X64)
-- Jun 10 2013 20:09:10
-- Copyright (c) Microsoft Corporation
-- Enterprise Evaluation Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据:[CraneTrends]
if object_id('[CraneTrends]') is not null drop table [CraneTrends]
go
create table [CraneTrends]([CraneType] varchar(3),[tablename] varchar(14))
insert [CraneTrends]
select '002','Craneopration' union all
select '003','Craneopration3' union all
select '001','Craneopration1'
--------------开始查询--------------------------
DECLARE @sql NVARCHAR(MAX),@CraneType VARCHAR(10) ='002'
SELECT @sql= 'select * from '+tablename
from cranetrends
where cranetype=@CraneTypeEXEC( @sql)
-- Author :DBA_Huangzj(發糞塗牆)
-- Date :2013-08-14 10:10:02
-- Version:
-- Microsoft SQL Server 2014 (CTP1) - 11.0.9120.5 (X64)
-- Jun 10 2013 20:09:10
-- Copyright (c) Microsoft Corporation
-- Enterprise Evaluation Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据:[CraneTrends]
if object_id('[CraneTrends]') is not null drop table [CraneTrends]
go
create table [CraneTrends]([CraneType] varchar(3),[tablename] varchar(14))
insert [CraneTrends]
select '002','Craneopration' union all
select '003','Craneopration3' union all
select '001','Craneopration1'
--------------开始查询--------------------------
DECLARE @sql NVARCHAR(MAX),@CraneType VARCHAR(10) ='002'
SELECT @sql= 'select * from '+tablename
from cranetrends
where cranetype=@CraneTypeEXEC( @sql)
TableName 别都是 CraneOperation3
谢谢版主啊,不过我根据你之前给我的那个sql语句,琢磨出了个简单的方法declare @sql nvarchar(max),@cranetype nvarchar(max)
set @sql=''
set @cranetype='001'
select @sql=@sql+'select * from ' +tablename from cranetrends where cranetype=@cranetype
select @sql
exec(@sql)再次谢谢版主!