私はasp.net C#で書かれたWebサイトを持っています。それはSQL 2005のDBを使用していたが、要件のために、それはSQL 2000 DBと互換性があることを確認している。マーキーを読み込むためにストアドプロシージャを使用している1ページを除いて、サイトのすべてがokに変わりました。 @Url_FK変数はストアドプロシージャを介してページに渡されなくなりました。どんな援助も役に立つでしょう。ありがとう!データ型の問題SQL 2005からSQL 2000へ
テーブルデザインの唯一の違いは、2005がnvarchar(max)を使用し、2000がTOD_Textフィールドにvarchar(8000)を使用する点です。
ストアドプロシージャのコード2005:プロシージャ・コード2000保存
USE [CSF]
GO
/****** Object: StoredProcedure [dbo].[sp_test] Script Date: 12/06/2010 11:56:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[sp_test]
(
@Url_FK int
)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT TOP (1) TOD_Text, Url_FK, TOD_Date
FROM CSF_TOD
WHERE (Url_FK = @Url_FK) AND (TOD_Date <= GETDATE())
ORDER BY TOD_Date DESC
END
:aspxページで
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_test]
(
@Url_FK int
)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT TOP 1 TOD_Text, Url_FK, TOD_Date
FROM CSF_TOD
WHERE (Url_FK = @Url_FK) AND (TOD_Date <= GETDATE())
ORDER BY TOD_Date DESC
END
GO
を----コード
<asp:SqlDataSource ID="sds_TOD" runat="server" ConnectionString="<%$ ConnectionStrings:TESTConnectionString %>" SelectCommand="sp_TEST" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:Parameter DefaultValue="1" Name="Url_FK" Type="Int32" />
どこかにエラーがありますか? ASP.NETで? SQLサーバー? –
エラーは何ですか? SQL Server 2000と2005のテーブル定義は異なりますか? –
私はこれに何か間違って見ることができません。エラーコードを投稿してください。 –