<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>好心情Blog &#187; MSSQL</title>
	<atom:link href="http://www.softbunny.net/post/tag/mssql/feed" rel="self" type="application/rss+xml" />
	<link>http://www.softbunny.net</link>
	<description>每天一个好心情</description>
	<lastBuildDate>Fri, 03 Feb 2012 13:20:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>SQL报错“参数数据类型 text 对于 replace 函数的参数 1 无效”</title>
		<link>http://www.softbunny.net/post/mssql_text_replace_cast.shtml</link>
		<comments>http://www.softbunny.net/post/mssql_text_replace_cast.shtml#comments</comments>
		<pubDate>Mon, 02 Nov 2009 01:26:13 +0000</pubDate>
		<dc:creator>软件兔</dc:creator>
				<category><![CDATA[工作学习]]></category>
		<category><![CDATA[MSSQL]]></category>

		<guid isPermaLink="false">http://softbunny.net/?p=421</guid>
		<description><![CDATA[<p>说到数据库中文本的替换，一般人首先想到的是Replace函数：</p><p><span style="color: rgb(255, 0, 0);">update Table set Column=Replace(Column,'oldkeyword','newkeyword')</span></p><p>不过，当Column为text或ntext时，用以上的查询就会报错&#8220;参数数据类型 text 对于 replace 函数的参数 1 无效&#8221;。原来问题是出在对text或ntext类型的数据在查询中不能进行字符串操作。这时用得最多的便是把text当作varchar（实际内容长度低于8000字节时）或把ntext当作nvarchar(实际内容长度低于4000字节时）来处理了：</p>...
]]></description>
			<content:encoded><![CDATA[<p>说到数据库中文本的替换，一般人首先想到的是Replace函数：</p>
<p><span style="color: #ff0000;">update Table set Column=Replace(Column,&#8217;oldkeyword&#8217;,'newkeyword&#8217;)</span></p>
<p>不过，当Column为text或ntext时，用以上的查询就会报错“参数数据类型 text 对于 replace 函数的参数 1 无效”。原来问题是出在对text或ntext类型的数据在查询中不能进行字符串操作。这时用得最多的便是把text当作varchar（实际内容长度低于8000字节时）或把ntext当作nvarchar(实际内容长度低于4000字节时）来处理了：</p>
<p><span style="color: #ff0000;">update Table set Column=Replace(Cast(Column as varchar(8000)),&#8217;oldkeyword&#8217;,'newkeyword&#8217;)</span></p>
<p><span style="color: #ff0000;">update Table set Column=Replace(Cast(Column as nvarchar(4000)),&#8217;oldkeyword&#8217;,'newkeyword&#8217;)</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.softbunny.net/post/mssql_text_replace_cast.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SQL数据库被标为可疑/置疑/质疑的处理</title>
		<link>http://www.softbunny.net/post/358.shtml</link>
		<comments>http://www.softbunny.net/post/358.shtml#comments</comments>
		<pubDate>Sat, 01 Nov 2008 00:35:00 +0000</pubDate>
		<dc:creator>软件兔</dc:creator>
				<category><![CDATA[工作学习]]></category>
		<category><![CDATA[Err]]></category>
		<category><![CDATA[MSSQL]]></category>

		<guid isPermaLink="false">http://softbunny.net/?p=360</guid>
		<description><![CDATA[<p>已经是第二次遇到这问题了，在管理器中该数据库被标为可疑（在原来2000版本中好象叫&#8220;置疑&#8221;），此时不能对该库进行任何操作。用以下SQL文可以搞定：</p><p>[Quote]USE MASTER<br />GO<br />SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE<br />GO<br />ALTER DATABASE db1 SET EMERGENCY<br />GO<br />sp_dboption 'db1', 'single user', 'true'<br />...</p>
]]></description>
			<content:encoded><![CDATA[<p>已经是第二次遇到这问题了，在管理器中该数据库被标为可疑（在原来2000版本中好象叫“置疑”），此时不能对该库进行任何操作。用以下SQL文可以搞定：</p>
<blockquote>
<div class="quote">USE MASTER<br />
GO<br />
SP_CONFIGURE &#8216;ALLOW UPDATES&#8217;,1 RECONFIGURE WITH OVERRIDE<br />
GO<br />
ALTER DATABASE db1 SET EMERGENCY<br />
GO<br />
sp_dboption &#8216;db1&#8242;, &#8216;single user&#8217;, &#8216;true&#8217;<br />
GO<br />
DBCC CHECKDB(&#8216;db1&#8242;,&#8217;REPAIR_ALLOW_DATA_LOSS&#8217;)<br />
GO<br />
ALTER DATABASE db1 SET ONLINE<br />
GO<br />
sp_configure &#8216;allow updates&#8217;, 0 reconfigure with override<br />
GO<br />
sp_dboption &#8216;db1&#8242;, &#8216;single user&#8217;, &#8216;false&#8217;<br />
GO</div>
</blockquote>
<p>其中db1是数据库的名字。</p>
<p>两次造成该问题的原因都是服务器意外重启，而且最近几天服务器总是频繁意外重启，目前正在找原因。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softbunny.net/post/358.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server创建用户时报错:15023 用户、组或角色&#8217;XXX&#8217;在当前数据库中已存在</title>
		<link>http://www.softbunny.net/post/sql_login_user.shtml</link>
		<comments>http://www.softbunny.net/post/sql_login_user.shtml#comments</comments>
		<pubDate>Wed, 23 Apr 2008 12:41:26 +0000</pubDate>
		<dc:creator>软件兔</dc:creator>
				<category><![CDATA[工作学习]]></category>
		<category><![CDATA[MSSQL]]></category>

		<guid isPermaLink="false">http://softbunny.net/?p=333</guid>
		<description><![CDATA[<p>前几天被SQL好一个郁闷, 其中包括了种种问题, 本想将解决过程记下来的, 但精力有限, 一直没能如愿. 今天看到<a target="_blank" href="http://www.linwan.net.cn/archives/2800.html">linker对于&#34;sql2000 因为选定的用户拥有对象，所以无法除去该用户&#34;问题的解决方法</a>, 感觉与我遇到的其中一个问题类似, 就单独把这个问题述一下吧.</p><p>在本地调试的一个数据库放到服务器上后发现数据库的用户名跟着数据库过去了(废话,本来就是数据库系统表中的一条记录,能不过去吗?), 但登录名支了没过去, 就随手想创建一个登录名, 以给该用户使用的, 但创建登录名时发现可能是出于安全考虑吧, 创建的登录名不允许用来操作该数据库. 报&#34;用户、组或角色'XXX'在当前数据库中已存在 错误:15023&#34;的错.</p><p><img onload="ResizeImage(this,0)" src="http://www.softbunny.net/upload/SQL_Login_User.JPG" alt="" title=""/></p><p>...</p>
]]></description>
			<content:encoded><![CDATA[<p>前几天被SQL好一个郁闷, 其中包括了种种问题, 本想将解决过程记下来的, 但精力有限, 一直没能如愿. 今天看到<a href="http://www.linwan.net.cn/archives/2800.html" target="_blank">linker对于”sql2000 因为选定的用户拥有对象，所以无法除去该用户”问题的解决方法</a>, 感觉与我遇到的其中一个问题类似, 就单独把这个问题述一下吧.</p>
<p>在本地调试的一个数据库放到服务器上后发现数据库的用户名跟着数据库过去了(废话,本来就是数据库系统表中的一条记录,能不过去吗?), 但登录名支了没过去, 就随手想创建一个登录名, 以给该用户使用的, 但创建登录名时发现可能是出于安全考虑吧, 创建的登录名不允许用来操作该数据库. 报”用户、组或角色&#8217;XXX&#8217;在当前数据库中已存在 错误:15023&#8243;的错.</p>
<p><img src="http://www.softbunny.net/upload/SQL_Login_User.JPG" alt="" /></p>
<p>想手工把登录名与数据库中的用户名进行关联, 系统不让; 想删除数据库中的用户再重建, 竟然也不让删……</p>
<p>老办法: 放狗~</p>
<p>最终发现这种情况叫”存在孤立用户”, 其实用系统的一个存储过程sp_change_users_login就可以搞定的:</p>
<blockquote>
<div class="quote">Use <span style="color: #ff0000;">ABC</span><br />
go<br />
sp_change_users_login &#8216;<span style="color: #339966;">update_one&#8217;</span>, &#8216;<span style="color: #0000ff;">xxx&#8217;</span>, &#8216;<span style="color: #ff6600;">xxx</span><span style="color: #0000ff;">&#8216;</span></div>
</blockquote>
<p>解释一下参数:</p>
<p><span style="color: #ff0000;">ABC</span>, 就不用说了, 想进行操作的数据库呗</p>
<p><span style="color: #339966;">update_one</span>, 表示只对一个用户进行操作</p>
<p><span style="color: #0000ff;">xxx</span>与<span style="color: #ff6600;">xxx</span>, 则分别是SQL Server的登录名与数据库中的用户名</p>
<p>sp_change_users_login的更详细的用法可以参考SQL Server的联机帮助, SQL Server 2005的<a href="ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/html/1554b39f-274b-4ef8-898e-9e246b474333.htm" target="_blank">在此</a>, SQL 2000的链接不方便做成链接的形式, 各位可以自己到联机丛书的索引中找一下.</p>
<p>linker同学这下明白了吧? 呵呵, 不用谢我, 把授课费打到我的招行的帐号上就可以了. 我的帐号? 请拨110, 向接电话的那位女士咨询.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softbunny.net/post/sql_login_user.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>实现单一模式下修复SQL Server 2005中数据库的错误</title>
		<link>http://www.softbunny.net/post/154.shtml</link>
		<comments>http://www.softbunny.net/post/154.shtml#comments</comments>
		<pubDate>Wed, 04 Apr 2007 09:16:11 +0000</pubDate>
		<dc:creator>软件兔</dc:creator>
				<category><![CDATA[工作学习]]></category>
		<category><![CDATA[MSSQL]]></category>

		<guid isPermaLink="false">http://softbunny.net/?p=156</guid>
		<description><![CDATA[<p>昨天硬盘出错, 把数据全盘GHOST到新盘后发现库中文章表中遇到了问题, 不管是生成静态页还是删除指定文章, 只要查询时遇到有错误的记录就报错.</p><p>查了一下HELP知道DBCC CHECKTABLE命令可以修复, 但要求是在"单用户模式"下进行, 从HELP中看到手动启动SQL时加 -m 参数可以实现单用户, 结果发现根本不行, 哪怕把服务器上的网站全停了还是不行.</p><p>放狗一顿狂搜, 加上SQL自带的HELP, 终于凑出来了一段(就三行^_^)命令:</p><p><span style="COLOR: #0000ff">alter database 库名 set SINGLE_USER<br/>DBCC CHECKTABLE (表名,REPAIR_ALLOW_DATA_LOSS)<br/>alter database 库名 set MULTI_USER</span></p><p>这样一来就可以在基本不影响网站访问的情况下把问题解决了 :-)</p><p class="zoundry_bw_tags">  <!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --><br/>  <span class="ztags"><span class="ztagspace">Del.icio.us</span> : <a href="http://del.icio.us/tag/MSSQL" class="ztag" rel="tag">MSSQL</a>, <a href="http://del.icio.us/tag/%E4%BF%AE%E5%A4%8D" class="ztag" rel="tag">修复</a>, <a href="http://del.icio.us/tag/%E6%95%B0%E6%8D%AE%E5%BA%93" class="ztag" rel="tag">数据库</a></span> <br/></p>
]]></description>
			<content:encoded><![CDATA[<p>昨天硬盘出错, 把数据全盘GHOST到新盘后发现库中文章表中遇到了问题, 不管是生成静态页还是删除指定文章, 只要查询时遇到有错误的记录就报错.</p>
<p>查了一下HELP知道DBCC CHECKTABLE命令可以修复, 但要求是在&quot;单用户模式&quot;下进行, 从HELP中看到手动启动SQL时加 -m 参数可以实现单用户, 结果发现根本不行, 哪怕把服务器上的网站全停了还是不行.</p>
<p>放狗一顿狂搜, 加上SQL自带的HELP, 终于凑出来了一段(就三行^_^)命令:</p>
<p><span style="color: rgb(0, 0, 255);">alter database 库名 set SINGLE_USER<br />DBCC CHECKTABLE (表名,REPAIR_ALLOW_DATA_LOSS)<br />alter database 库名 set MULTI_USER</span></p>
<p>这样一来就可以在基本不影响网站访问的情况下把问题解决了 :-)</p>
<p class="zoundry_bw_tags"><!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --><span class="ztags"><span class="ztagspace">Del.icio.us</span> : <a href="http://del.icio.us/tag/MSSQL" rel="tag" class="ztag">MSSQL</a>, <a href="http://del.icio.us/tag/%E4%BF%AE%E5%A4%8D" rel="tag" class="ztag">修复</a>, <a href="http://del.icio.us/tag/%E6%95%B0%E6%8D%AE%E5%BA%93" rel="tag" class="ztag">数据库</a></span> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.softbunny.net/post/154.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

