读书人

DECLARE如何调用

发布时间: 2012-04-05 12:42:40 作者: rapoo

DECLARE怎么调用
DECLARE @s NVARCHAR(max)
SELECT @s=ISNULL(@s+',','select ')+a.Name+' as '+REPLACE(a.Name,b.NormContent,b.NormName)
FROM syscolumns AS a
inner JOIN NormInfoTb AS b ON a.Name LIKE b.NormContent+'_%'
WHERE ID=OBJECT_ID('gsm_alarm')


EXEC(@s+' from gsm_alarm')


在SQL2008查询分析器里执行的时候,系统提示【'(' 附近有语法错误。】好像是要给‘s’赋值之类的。怎么调呢。

我想把它放成存储过程方式调用,也不知道咋写。谢谢,在线等。

[解决办法]
DECLARE @s NVARCHAR(max)
set @s = '';
SELECT @s=ISNULL(@s+',','select ')+a.Name+' as '+REPLACE(a.Name,b.NormContent,b.NormName)
FROM syscolumns AS a
inner JOIN NormInfoTb AS b ON a.Name LIKE b.NormContent+'_%'
WHERE ID=OBJECT_ID('gsm_alarm')

set @s = @s+' from gsm_alarm';
EXEC(@s);


[解决办法]
木有看出来语法错误


你print一下看看你拼接的语句有问题没


DECLARE @s NVARCHAR(max)
SELECT @s=ISNULL(@s+',','select ')+a.Name+' as '+REPLACE(a.Name,b.NormContent,b.NormName)
FROM syscolumns AS a
inner JOIN NormInfoTb AS b ON a.Name LIKE b.NormContent+'_%'
WHERE ID=OBJECT_ID('gsm_alarm')

print @s+' from gsm_alarm';

读书人网 >SQL Server

热点推荐