| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1460 人关注过本帖
标题:我象高手提的第一个的问题!!!
只看楼主 加入收藏
chenzhao
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2006-5-31
收藏
得分:0 

首先谢谢您的关注!我的代码如下!
CREATE TABLE tb(col1 varchar(10),col2 int)
INSERT tb SELECT 'a',1
UNION ALL SELECT 'a',2
UNION ALL SELECT 'b',1
UNION ALL SELECT 'b',2
UNION ALL SELECT 'b',3
GO

--合并处理函数
CREATE FUNCTION dbo.f_str(@col1 varchar(10))
RETURNS varchar(100)
AS
BEGIN
DECLARE @re varchar(100)
SET @re=''
SELECT @re=@re+','+CAST(col2 as varchar)
FROM tb
WHERE col1=@col1
RETURN(STUFF(@re,1,1,''))
END
GO

--调用函数
SELECT col1,col2=dbo.f_str(col1) FROM tb GROUP BY col1
/想显示的结果如下:
col1 col2
---------- -----------
a 1,2
b 1,2,3
--*/
GO
——————————————————————
测试的时候系统反馈信息如下:
——————————————————————
服务器: 消息 208,级别 16,状态 1,过程 f_str,行 10
对象名 'tb' 无效。


白天搞VB,SQL SERVER,ASP,晚上搞C……
2006-06-06 09:26
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
收藏
得分:0 

测试通过
CREATE TABLE tb(col1 varchar(10),col2 int)
INSERT tb SELECT 'a',1
UNION ALL SELECT 'a',2
UNION ALL SELECT 'b',1
UNION ALL SELECT 'b',2
UNION ALL SELECT 'b',3
GO

CREATE FUNCTION dbo.f_str(@col1 varchar(10))
RETURNS varchar(100)
AS
BEGIN
DECLARE @re varchar(100)
SET @re=''
SELECT @re=@re+','+CAST(col2 as varchar)
FROM tb
WHERE col1=@col1
RETURN(STUFF(@re,1,1,''))
END
GO

SELECT * FROM tb
SELECT col1,col2=dbo.f_str(col1) FROM tb GROUP BY col1

/*结果如下
col1 col2
---------- -----------
a 1
a 2
b 1
b 2
b 3

col1 col2
---------- -------------
a 1,2
b 1,2,3

*/


2006-06-06 09:36
chenzhao
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2006-5-31
收藏
得分:0 
但是我的不行啊,是不是权限和设置的问题啊?

白天搞VB,SQL SERVER,ASP,晚上搞C……
2006-06-06 09:42
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
收藏
得分:0 

你不是SA权限?


2006-06-06 09:44
chenzhao
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2006-5-31
收藏
得分:0 
不是的,为什么必须要SA的权限呢?

白天搞VB,SQL SERVER,ASP,晚上搞C……
2006-06-06 09:48
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
收藏
得分:0 

SA权限拥有最大的操作权

如果不是的话类似建表,建函数,建存储过程,建视图等操作都有可能受到限制

看你的T-SQL语句不应该连权限问题都不知道吧


2006-06-06 09:51
chenzhao
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2006-5-31
收藏
得分:0 

请问阁下,难道我在操作自己的数据库难道也要Systemadmin的权限吗?


白天搞VB,SQL SERVER,ASP,晚上搞C……
2006-06-06 09:58
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
收藏
得分:0 
混合登陆?

2006-06-06 10:04
chenzhao
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2006-5-31
收藏
得分:0 
是的啊,我的是混合验证的,我create function是dbo的,但是数据表的权限是chenzhao,也就是我的权限,dbo的权限是不是和我的登陆不一样?我认为是这样,要是我create function想把权限归属于chenzhao要怎么样做,前面加一个chenzhao.f_str不行啊!

白天搞VB,SQL SERVER,ASP,晚上搞C……
2006-06-06 10:07
chenzhao
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2006-5-31
收藏
得分:0 
LouisXIV好!
我的问题已经解决,只要create table 的时候前面加一个dbo就可以了,create function的时候也是属于dbo就可以了……非常感谢您的帮助!
这个论坛好,不光解决问题的速度快,而且非常中肯,打开的速度也非常快!
我会把这里当作我的朋友的!
谢谢!

白天搞VB,SQL SERVER,ASP,晚上搞C……
2006-06-06 10:13
快速回复:我象高手提的第一个的问题!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027010 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved