--proc DECLARE @dt NVARCHAR(50)
SELECT @dt=MainRoom_ET FROM Fhome f WHERE f.UserId=3
PRINT @dt
--这样可以得到@dt
--
--如果MainRoom_ET为变量时
--DECLARE @dt NVARCHAR(50)
DECLARE @table_ET NVARCHAR(50)
DECLARE @str2 NVARCHAR(200)
SET @table_ET='MainRoom_ET';
SET @str2='SELECT '''+@dt+'''='+CONVERT(NVARCHAR(50), @table_ET) +' FROM Fhome f WHERE f.UserId=3'
EXEC(@str2)
PRINT @dt
--或
DECLARE @dt NVARCHAR(50)
DECLARE @table_ET NVARCHAR(50)
DECLARE @str2 NVARCHAR(200)
SET @table_ET='MainRoom_ET';
SELECT @dt=CONVERT(NVARCHAR(50), @table_ET) FROM Fhome f WHERE f.UserId=3
PRINT @dt
--都得不到 @dt 的值?--当MainRoom_ET 字段名为传递过来的变量时怎么把字段里的值放入@dt变量?
--自定义函数 和output 参数 也考虑过啦
SELECT @dt=MainRoom_ET FROM Fhome f WHERE f.UserId=3
PRINT @dt
--这样可以得到@dt
--
--如果MainRoom_ET为变量时
--DECLARE @dt NVARCHAR(50)
DECLARE @table_ET NVARCHAR(50)
DECLARE @str2 NVARCHAR(200)
SET @table_ET='MainRoom_ET';
SET @str2='SELECT '''+@dt+'''='+CONVERT(NVARCHAR(50), @table_ET) +' FROM Fhome f WHERE f.UserId=3'
EXEC(@str2)
PRINT @dt
--或
DECLARE @dt NVARCHAR(50)
DECLARE @table_ET NVARCHAR(50)
DECLARE @str2 NVARCHAR(200)
SET @table_ET='MainRoom_ET';
SELECT @dt=CONVERT(NVARCHAR(50), @table_ET) FROM Fhome f WHERE f.UserId=3
PRINT @dt
--都得不到 @dt 的值?--当MainRoom_ET 字段名为传递过来的变量时怎么把字段里的值放入@dt变量?
--自定义函数 和output 参数 也考虑过啦
第一句这样试试吧。
DECLARE @table_ET NVARCHAR(50)
DECLARE @str2 NVARCHAR(200)
SET @table_ET='MainRoom_ET';
SET @str2='SELECT '''+@dt+'''='+CONVERT(NVARCHAR(50), @table_ET) +' FROM Fhome f WHERE f.UserId=3'
EXEC(@str2)
PRINT @str2
输出‘’@dt 没赋初值
所以语句不能=‘’因为
好像都做不到
DECLARE @table_ET NVARCHAR(50)
DECLARE @str2 NVARCHAR(200)
SET @table_ET='MainRoom_ET';
SET @str2='SELECT @dt=CONVERT(NVARCHAR(50), @table_ET) FROM Fhome f WHERE f.UserId=3'
exec sp_executesql @str2,N'@dt NVARCHAR(50) output',@dt outputPRINT @str2
declare @SQLString nvarchar(200)
DECLARE @table_ET NVARCHAR(50)
DECLARE @str2 NVARCHAR(200)
SET @table_ET='MainRoom_ET';declare @ParmDefinition nvarchar(200)
SET @str2 =
N'SELECT @dt='+@table_ET+' FROM Fhome f WHERE f.UserId=3'
SET @ParmDefinition = N'@dt NVARCHAR(50) output';
DECLARE @dt NVARCHAR(50);
EXECUTE sp_executesql @str2, @ParmDefinition ,@dt OUTPUT
SELECT @dt这个可以