declare @X int; /* 要獲取的個(gè)數(shù) */
創(chuàng)新互聯(lián)是一家專業(yè)提供長(zhǎng)海企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為長(zhǎng)海眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。
declare @Y tinyint; /* 要獲取的長(zhǎng)度,越大越慢 */
declare @i int;
declare @j bigint;
declare @SQL1 varchar(1000);
declare @SQL2 varchar(1000);
declare @SQL3 nvarchar(2000);
set @X=100;
set @Y=6; /* 10的@Y次方必須大于@X。且@Y不要太大,否則會(huì)很慢,量“機(jī)”而為 */
set @i=2;
set @j=10;
USE tempdb
-- 創(chuàng)建測(cè)試表及其數(shù)據(jù)
if exists (select 1 from sysobjects where name = 'T' and type = 'U')
drop table T;
CREATE TABLE T(n tinyint);
INSERT INTO T SELECT 1
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 5
UNION ALL SELECT 6
UNION ALL SELECT 7
UNION ALL SELECT 8
UNION ALL SELECT 9
UNION ALL SELECT 0
;
-- 組裝語(yǔ)句
set @SQL1='select top '+ CAST(@X AS varchar) +' t1.n * '+ CAST(POWER(@j,@Y-1) AS varchar);
set @SQL2=' as nn from T t1';
WHILE @i=@Y
BEGIN
set @SQL1 = @SQL1 + '+t' + CAST(@i AS varchar) + '.n*'+ CAST(POWER(@j,@Y-@i) AS varchar);
set @SQL2 = @SQL2 + ',T t' + CAST(@i AS varchar);
set @i=@i+1;
END
set @SQL3 = @SQL1 + @SQL2 + ' where t1.n0 order by newid()';
-- 執(zhí)行語(yǔ)句
EXEC sp_executesql @SQL3;
-- 刪除測(cè)試
DROP TABLE T;
SqlServer有3種方式設(shè)置自增列,
SSMS中在圖形化界面中建表時(shí),設(shè)置自動(dòng)增長(zhǎng)的其實(shí)值及每次增量。
2. --語(yǔ)句建表時(shí)設(shè)置自增列,從1開始增長(zhǎng),每次增加1
create table test(col1 int indentity(1,1,))。
3. --修改列為從1開始增長(zhǎng),每次增加10
alter table test alter col1 int indentity(1,10)。
操作
1、創(chuàng)建一個(gè)表?movie,設(shè)置字段 id?具有 identity(1,1),
注:identity(start,step),中的參數(shù)start表示從start開始標(biāo)號(hào),step表示每次遞增的步長(zhǎng)數(shù)量
2、當(dāng)我們進(jìn)行插入操作的時(shí)候,便會(huì)報(bào)如下的錯(cuò)誤;
注:mysql?上是可以這么操作的;
3、解決方法是,在使用前添加一句
SET IDENTITY_Insert movie ON;
注:SET IDENTITY_Insert?table switch?表示是否允許table表中的
identity?字段的插入操作,On表示允許,Off表示不允許
4、有時(shí)候?yàn)榱税踩?,?huì)習(xí)慣性的在操作前,允許,操作后不允許:
5、注:mssql?目前只允許同時(shí)只對(duì)一張表進(jìn)行
SET IDENTITY_Insert table?ON;
操作,所以如果考慮到在不同的表之間進(jìn)行操作的話,
需要先把前一張表給OFF?掉;
identity值
查看當(dāng)前表的indentity的值:
dbcc checkident(table, NORESEED)
其中 table?表示的要查看的表, NORESEED表示不會(huì)修改該值,
如下圖查詢到的結(jié)果是3
修改當(dāng)前表的 identity?的值
dbcc checkident(table,RESEED,value)
其中:
table?表示的是要修改的表;
RESEED?表示的是identity的值會(huì)被修改;
value?表示的是修改后的值;
如下圖所示,是把值修改成1后,查詢的結(jié)果:
具體實(shí)施步驟
sql server 2008默認(rèn)是不允許遠(yuǎn)程連接的sa帳戶默認(rèn)禁用的如果想要在本地用SSMS
連接遠(yuǎn)程服務(wù)器上的SQL Server 2008需要做兩個(gè)部分的配置
1SQL Server Management Studio Express簡(jiǎn)寫SSMS
2SQL Server 配置管理器/SQL Server Configuration Manager簡(jiǎn)寫SSCM
有兩點(diǎn)要注意
12005的外圍應(yīng)用配置器在2008中換了地方
2有些設(shè)置生效需要重啟一下SQL Server
step 1: 打開SSMS用windows身份連接數(shù)據(jù)庫(kù)登錄后右鍵選擇“屬性”
step 2: 左側(cè)選擇“安全性”選中右側(cè)的“SQL Server 和 Windows 身份驗(yàn)證模式”以啟
用混合登錄模式
step 3: 選擇“連接”勾選“允許遠(yuǎn)程連接此服務(wù)器”然后點(diǎn)“確定”
step 4: 展開“安全性”-“登錄名”-“sa”右鍵選擇“屬性”
step 5: 左側(cè)選擇“常規(guī)”右側(cè)選擇“SQL Server 身份驗(yàn)證”并設(shè)置密碼
step 6: 選擇“狀態(tài)”選中“啟用”點(diǎn)擊“確定”
step 7: 右擊數(shù)據(jù)庫(kù)選擇“方面”step 8: 將“RemoteAccessEnabled”屬性設(shè)為“True”點(diǎn)
“確定”《sql2008中沒(méi)有找到此步未做》
step 9: 至此SSMS已設(shè)置完畢先退出再用sa登錄成功即表示sa帳戶已經(jīng)啟用
step 10: 下面開始配置SSCM選中左側(cè)的“SQL Server服務(wù)”確保右側(cè)的“SQL
Server”以及“SQL Server Browser”正在運(yùn)行
step 11: 以下為英文版本界面。如圖右側(cè)的TCP/IP默認(rèn)是“Disabled”雙擊打開設(shè) 置面板將其修改為“Enabled”step 12: 選擇“IP Addersses”選項(xiàng)卡設(shè)置端口“1433” step
13: 如圖將"Client Protocols"的"TCP/IP"也修改為“Enabled”
step 11:我的做法
設(shè)置sa賬號(hào)的數(shù)據(jù)庫(kù)引擎與這里設(shè)置的數(shù)據(jù)庫(kù)引擎要一致我的電腦上有三個(gè)數(shù)據(jù)
庫(kù)引擎OFFICESERCERS、SQLEXPRESS、MSSQLSERVER。我使用的是
SQLEXPRESS引擎tcp/ip協(xié)議named pipes兩個(gè)都要啟動(dòng)而其他的引擎的
tcp/ip和named pipes沒(méi)有啟動(dòng)。
tcp/ip設(shè)置如下
sqlserver配置管理器-sqlserver網(wǎng)絡(luò)配置-SQLEXPRESS的協(xié)議右邊的Tcp/Ip右
鍵-屬性
協(xié)議全部偵聽否已啟用是
ip地址ip2ip地址XXXXX.XX.XX.XX動(dòng)態(tài)端口空tcp端口1433已啟
動(dòng)是活動(dòng)是(其他ip設(shè)置已啟動(dòng)為否)
這樣遠(yuǎn)程登錄使用這個(gè)IP地址就可以登錄。
step 12: 配置完成重新啟動(dòng)SQL Server 2008。
此時(shí)應(yīng)該可以使用了但是還是要確認(rèn)一下防火墻。
SQL Server 2005/2008 Express安裝以后默認(rèn)情況下是禁用遠(yuǎn)程連接的。如果需要
遠(yuǎn)程訪問(wèn)需要手動(dòng)配置。
打開防火墻設(shè)置。將SQLServr.exeC:Program FilesMicrosoft SQL Server
MSSQL10.SQLEXPRESSMSSQLBinnsqlservr.exe 添加到允許的列表中。
step12我的做法如下 開始-管理工具-高級(jí)安全windows防火墻入站規(guī)則右鍵-新建規(guī)則選擇端口特定本
地端口1433默認(rèn)下一步OK。
望采納。
須提供遠(yuǎn)程訪問(wèn)和1433口打開.
參考2005的.Sql Server 2005的1433端口打開和進(jìn)行遠(yuǎn)程連接
如何打開sql server 2005 的1433端口
配置工具-Sql Server Configuration Manager-MSSQLSERVER的協(xié)議
看看TCP/IP協(xié)議是否啟動(dòng),如果啟動(dòng),右鍵菜單點(diǎn)"屬性" ,在分頁(yè)菜單中選"IP地址",把"IP1"和"IP2"中"TCP端口"為1433,
"已啟用"改為"是"
配置工具-Sql Server Configuration Manager-SQL Native Client 配置-客戶端協(xié)議-TCP/IP
選擇TCP/IP右鍵菜單中"屬性",確認(rèn)"默認(rèn)端口"是1433,"已啟用"為"是"
SQL Server 2005 遠(yuǎn)程連接
配置TCP/IP屬性.
Surface Area Configuration -- Database Engine -- Remote Connections ---Using TCP/IT
SQL Server 外圍應(yīng)用配置器—服務(wù)和連接外圍配置—database englie—遠(yuǎn)程連接—啟用(遠(yuǎn)程連接的TCP/IP和named pipes)
SQL Server Configuration Manager—SQL2005網(wǎng)絡(luò)配置—啟用TCP/IP和named pipes
-----------------------------------------------------------------------------------------
一般按如上即可.
其他說(shuō)明見下:
sqlserver2005(Express版),為了便于管理,你還需要去下一個(gè)manage管理器,微軟的官方網(wǎng)站有
下,安裝好manage管理器后,在程序中連接sqlserver2005,下面幾點(diǎn)是要注意的。
1. 開啟sql2005遠(yuǎn)程連接功能,開啟辦法如下,
配置工具-sql
server外圍應(yīng)用配置器-服務(wù)和連接的外圍應(yīng)用配置器-打開MSSQLSERVER節(jié)點(diǎn)下的Database Engine
節(jié)點(diǎn),先擇"遠(yuǎn)程連接",接下建議選擇"同時(shí)使用TCP/IP和named pipes",確定后,重啟數(shù)據(jù)庫(kù)服務(wù)就可以了.
2.登陸設(shè)置改為,Sql server and windows Authentication方式同時(shí)選中,具體設(shè)置如下:
manage管理器-windows
Authentication(第一次用windows方式進(jìn)去),-對(duì)象資源管理器中選擇你的數(shù)據(jù)服務(wù)器--右鍵屬
性securitySql server and windows Authentication方式同時(shí)選中.
3:設(shè)置一個(gè)Sql server方式的用戶名和密碼,具體設(shè)置如下:
manage管理器-windows Authenticationnew querysp_password null,'sa123456','sa'
這樣就設(shè)置了一個(gè)用戶名為sa ,密碼為:sa123456的用戶,下次在登陸時(shí),可以用Sql server方式,
用戶名為sa ,密碼為:sa123456的用戶進(jìn)數(shù)據(jù)庫(kù)了.
4: 做完上面三步后,這樣寫連接字符串就可以順利進(jìn)入數(shù)據(jù)庫(kù)了,
(server=.\\sqlexpress;uid=sa;pwd=sa123456;database=master";
其它版本,做如下設(shè)置
程序—Microsoft SQL Server 2005—配置工具—SQL Server 外圍應(yīng)用配置器—服務(wù)和連接的外圍應(yīng)用配置器—
1、MSSQLserver(實(shí)例名)—DataBase Engine—遠(yuǎn)程連接—(設(shè)置選項(xiàng))
在下方選項(xiàng)
2、SQL Server Browser—服務(wù)(停止時(shí)只本機(jī)訪問(wèn))
3、程序—Microsoft SQL Server 2005—配置工具—SQL Server Configuration Manager—網(wǎng)絡(luò)連接協(xié)議-選擇實(shí)例對(duì)應(yīng)協(xié)議—啟用(shard memory、Named Pipes、TCP\IP)
注: SQL Server 瀏覽器程序以服務(wù)的形式在服務(wù)器上運(yùn)行。SQL Server 瀏覽器偵聽對(duì) Microsoft SQL Server 資源的傳入請(qǐng)求,
并提供計(jì)算機(jī)上安裝的 SQL Server 實(shí)例的相關(guān)信息。
SQL Server 瀏覽器可用于執(zhí)行下列三種操作:
瀏覽可用服務(wù)器
連接到正確的服務(wù)器實(shí)例
連接到專用管理員連接 (DAC) 端點(diǎn)
SQL Server Browser 服務(wù) (sqlbrowser) 為數(shù)據(jù)庫(kù)引擎 和 SSAS 的每個(gè)實(shí)例提供實(shí)例名稱和版本號(hào)。
SQL Server 瀏覽器隨 Microsoft SQL Server 2005 一起安裝,
為該計(jì)算機(jī)上運(yùn)行的早期版本的 SQL Server(從 Microsoft SQL Server 7.0 開始)提供此服務(wù)。
sqlserver安裝完成后,默認(rèn)就是可以遠(yuǎn)程訪問(wèn)的。如果不行訪問(wèn),看一下操作系統(tǒng)的防火墻。sqlserver使用的是1433端口。