怕不是用sql server 2008R2的查詢(xún)分析器打開(kāi)高版本的sql server 數(shù)據(jù)庫(kù)吧。
讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、網(wǎng)站空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、江寧網(wǎng)站維護(hù)、網(wǎng)站推廣。
你可以無(wú)視錯(cuò)誤直接打SQL,只是部分功能如sql server 代理不能使用而已。
想解決就裝一下更高版本的查詢(xún)分析器吧。
舉例說(shuō)明:
CREATE PROCEDURE dbo.DoSomethingWithEmployees
@List AS dbo.EmployeeList READONLY
AS
BEGIN
SET NOCOUNT ON;
SELECT EmployeeID FROM @List;
END
GO
在C#中的寫(xiě)法:
DataTable tvp = new DataTable();
using (conn)
{
SqlCommand cmd = new SqlCommand("dbo.DoSomethingWithEmployees", conn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter tvparam = cmd.Parameters.AddWithValue("@List", tvp);
tvparam.SqlDbType = SqlDbType.Structured;
// 執(zhí)行存儲(chǔ)過(guò)程,并獲取結(jié)果
}
仔細(xì)研究后在csdn上找到了解決該問(wèn)題的辦法帖出來(lái)給大家共享一下
大致方法是利用傳遞長(zhǎng)字符串的形式向存儲(chǔ)過(guò)程傳遞一個(gè)長(zhǎng)字符串。由于sqlserver沒(méi)有 splite函數(shù)
所以必須自己定義一個(gè)splite函數(shù)來(lái)進(jìn)行處理
自定義一個(gè)函數(shù)
create function f_splitstr(@SourceSql varchar(8000),@StrSeprate varchar(10))
returns @temp table(F1 varchar(100))asbegindeclare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)while @i=1begininsert @temp values(left(@SourceSql,@i-1))
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)endif @SourceSql''
insert @temp values(@SourceSql)returnend-執(zhí)行select * from dbo.f_splitstr('1,2,3,4',',')
注:'1,2,3,4'即你所傳遞的字符串
同樣你可以通過(guò) select cunt(*) from dbo.f_splitstr('1,2,3,4',',')
獲得該字符串?dāng)?shù)組的長(zhǎng)度
如果要?jiǎng)h除該函數(shù)使用--刪除函數(shù)drop function fsplit