sqlserver这个修改数据库名称语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver这个修改数据库名称语句相关的知识,希望对你有一定的参考价值。
alter database jxgl
modify name=教学管理
和书上一样 为什么执行不了
改名之前,必须将该数据库切换到单用户模式,更名之后再恢复为多用户模式。
分三步:
EXEC sp_dboption 'jxgl', 'SINGLE USER', True
EXEC sp_renamedb 'jxgl', '教学管理'
EXEC sp_dboption '教学管理', 'SINGLE USER', False 参考技术B 执行不了是什么意思?有报错内容贴出来本回答被提问者采纳
这个sql语句怎么写sqlserver
表a的列有名称,属性1,属性2,属性3,属性4.。。属性n也就是n+1列。第一条数据有名称1,属性1,其他为null,第二条数据有名称1,属性2其他为空。。。第n条数据有名称1,属性n的数据其他为空,第101条有名称2,属性1,102条有名称2属性2。。。怎么合并这表里的数据,根据名称合并。也就是n条数据归属到1条数据。(相同名字的各条数据有值的属性不同)。
没环境没法测试,仅提供思路思路:用游标通过系统表每次取一个字段update表a数据一次,将其它字段update成和该字段一样的值
DECLARE @fieldname varchar(200)
DECLARE test CURSOR FOR
select a.name from syscolumns a
join sysobjects b on a.id=b.id
where b.name='a' and a.colid<>1
--游标遍历系统表,查出a表所有字段,去掉第一个字段
OPEN test
FETCH NEXT FROM test into @fieldname
WHILE @@FETCH_STATUS = 0
BEGIN
update a set a.属性1=b.@fieldname,a.属性2=b.@fieldname,。。。a.属性n=b.@fieldname
from a a join a b on a.名称=b.名称
where b.@fieldname is not null
--这里可以改成通过系统条查出的字段名称拼成sql,这样就通用了,不管该表多少个字段也不用改sql了,时间关系我不写了.
end
CLOSE test
DEALLOCATE test
执行完后所有的属性字段的值都是一样的,随便取哪个字段都是你要的结果
注意,这段sql有条件限制,名称字段必须是该表的的第一个字段,如果不是的话把colid的值改成正确的 参考技术A 这样行么?
1> CREATE TABLE #test (
2> 名称 VARCHAR(2),
3> 属性1 VARCHAR(2),
4> 属性2 VARCHAR(2),
5> 属性3 VARCHAR(2),
6> 属性4 VARCHAR(2)
7> );
8>
9> INSERT INTO #test
10> SELECT 'A', '1', NULL, NULL, NULL UNION ALL
11> SELECT 'A', NULL, '2', NULL, NULL UNION ALL
12> SELECT 'A', NULL, NULL, '3', NULL UNION ALL
13> SELECT 'A', NULL, NULL, NULL, '4' UNION ALL
14> SELECT 'B', '5', NULL, NULL, NULL UNION ALL
15> SELECT 'B', NULL, '6', NULL, NULL UNION ALL
16> SELECT 'B', NULL, NULL, '7', NULL UNION ALL
17> SELECT 'B', NULL, NULL, NULL, '8';
18> GO
1>
2> SELECT
3> 名称,
4> MAX(属性1) AS 属性1,
5> MAX(属性2) AS 属性2,
6> MAX(属性3) AS 属性3,
7> MAX(属性4) AS 属性4
8> FROM
9> #test
10> GROUP BY
11> 名称;
12> GO
名称 属性1 属性2 属性3 属性4
-- --- --- --- ---
A 1 2 3 4
B 5 6 7 8
警告: 聚合或其他 SET 操作消除了 Null 值。 参考技术B ST_UserID是自增的,所以它也是只读的,不可改写,所以不能设置数据源,在插入或者更新数据的语句里面,也不可尝试对它进行修改,否则会出错。
补充:首先,我上面的回答已经告诉你了,不可以尝试改变ST_UserID,否则会出错。其次,你插入语句的最后是想插入当前时间是吧?这里不能这样调用C#的函数,而是要和前面一样,用参数的形式。到程序里面再给参数赋值。否则出错
以上是关于sqlserver这个修改数据库名称语句的主要内容,如果未能解决你的问题,请参考以下文章