求一动态sql文返回值的写法获取传进来表名里OPENDATE(日期型)列不为空的第一条数据
create PROCEDURE GetData
@tableName varchar(100)BEGIN
declare @strSql nvarchar(1000),
declare @compareDate date
set @strSql='select @returnDate=top 1 OPENDATE from' + @tableName + ' where OPENDATE is not null'
exec sp_executesql @strSql N'@returnDate date output',@compareDate output
select @compareDate
END
GO如果列名是动态的如何写啊
create PROCEDURE GetData
@tableName varchar(100)BEGIN
declare @strSql nvarchar(1000),
declare @compareDate date
set @strSql='select @returnDate=top 1 OPENDATE from' + @tableName + ' where OPENDATE is not null'
exec sp_executesql @strSql N'@returnDate date output',@compareDate output
select @compareDate
END
GO如果列名是动态的如何写啊
解决方案 »
- 如何把XML格式的文件导入到SQL Server数据库中....很急!分数不够再补
- 多表查询,谢谢高手指教啊
- 有谁遇到过这种情况了吗?知道的请给点信息!
- 两个SQL SERVER之间能够通过拨号网络进行连接和通讯吗?
- 奇怪问题,请大家帮忙解决~~~~
- 如何在sysdatabases表中获得用户建立所有数据名并放入ComboBox中(在线等)
- 在ms sql做了视图,但不知道视图的instead of 触发器在那里做
- 关于SQL分组统计。急!!!!!!!!!!!急急急急急急急急急急急急急
- 怎样在已有的复制中加入一个已经有数据的表(Sybase SQL anywhere)?
- 我想在选出的记录前标上1,2,3....
- 求助:sql外键含有对对象的隐式引用
- 采用多线程对数据库读写引发冲突
@tableName varchar(100),
@columnName VARCHAR(100) --添加一个变量即可
as
BEGIN
declare @strSql nvarchar(1000)
declare @compareDate date set @strSql='select @returnDate=top 1 '+@columnName+' from' + @tableName + ' where OPENDATE is not null' --注意这里的修改 exec sp_executesql @strSql N'@returnDate date output',@compareDate output select @compareDate
END
GO
CREATE TABLE TEST(OPENDATE DATE)
INSERT TEST SELECT NULL UNION ALL SELECT '2013-08-08'CREATE PROCEDURE GetData
@tableName varchar(100)
AS
BEGIN
declare @strSql nvarchar(1000)
declare @compareDate date set @strSql=N'select top(1) @returnDate=OPENDATE from ' + @tableName + ' where OPENDATE is not null'
exec sp_executesql @strSql, N'@returnDate date output',@compareDate OUTPUT
select @compareDate
END
GO
CREATE TABLE TEST(OPENDATE DATE)
INSERT TEST SELECT NULL UNION ALL SELECT '2013-08-08'CREATE PROCEDURE GetData
@tableName varchar(100)
AS
BEGIN
declare @strSql nvarchar(1000)
declare @compareDate date set @strSql=N'select top(1) @returnDate=OPENDATE from ' + @tableName + ' where OPENDATE is not null'
exec sp_executesql @strSql, N'@returnDate date output',@compareDate OUTPUT
select @compareDate
END
GO
+10086