あなたが値を取得するために、このC#コードを書くことができ、あなたが0(テーブルが存在しない)または1(テーブルが存在しない)のいずれかを選択し、このようなストアドプロシージャを有する
CREATE PROCEDURE dbo.DoesTableExist (@TableName NVARCHAR(100))
AS
BEGIN
IF EXISTS (SELECT * FROM sys.tables WHERE Name = @TableName)
SELECT 1
ELSE
SELECT 0
END
を仮定 - 使用.ExecuteScalar()
だけ単一行、単一列期待していることから:今すぐresult
を
// set up connection and command
using (SqlConnection conn = new SqlConnection("your-connection-string-here"))
using (SqlCommand cmd = new SqlCommand("dbo.DoesTableExist", conn))
{
// define command to be stored procedure
cmd.CommandType = CommandType.StoredProcedure;
// add parameter
cmd.Parameters.Add("@TableName", SqlDbType.NVarChar, 100).Value = "your-table-name-here";
// open connection, execute command, close connection
conn.Open();
int result = (int)cmd.ExecuteScalar();
conn.Close();
}
をテーブルが存在しない場合0
のいずれかが含まれています - それは存在しない場合、または1
。この
が結果を返すか、選択するストアドプロシージャです返す必要がありますか? 「return 1」の代わりに「TableExists = 1」を選択すると簡単です。その後、ExecuteScalar()を使用することができます。 –
はい、返されます。物事をより簡単にするならば、SELECTを使って調べてみましょう。 – danbroooks
いくつかのコードを投稿してください。 – Khan